Erwägungen:
1.
1.1. Am 9. Dezember 2019 erhob A._ Beschwerde beim Verwaltungsgericht des Kantons St. Gallen gegen den Entscheid des Sicherheits- und Justizdepartements des Kantons St. Gallen vom 21. November 2019 betreffend Erlöschen der Aufenthaltsbewilligung EU/EFTA / Nichterteilung einer Aufenthaltsbewilligung EU/EFTA zur selbständigen Erwerbstätigkeit. Am 10. Dezember 2019 setzte ihm das Verwaltungsgericht Frist bis 28. Januar 2020, um die Beschwerde zu verbessern und einen Kostenvorschuss von Fr. 2'000.-- zu leisten, mit der Androhung, dass auf die Beschwerde sonst nicht eingetreten werde. Am 27. Januar 2020 teilte A._ dem Verwaltungsgericht mit, dass er seinen Wohnsitz in den Kanton Thurgau verlegt habe und das Verwaltungsgericht des Kantons St. Gallen nicht mehr zuständig sei. In der Folge trat das Verwaltungsgericht am 30. Januar 2020 auf die Beschwerde nicht ein und auferlegte A._ die Verfahrenskosten von Fr. 500.--.
1.2. Mit Beschwerde vom 10. Februar 2020 beantragt A._ dem Bundesgericht, der Entscheid des Verwaltungsgerichts sei aufzuheben. Das Verwaltungsgericht sei anzuweisen, die Akten an die Thurgauer Behörden weiterzuleiten. Das Bundesgericht hat keine Instruktionsmassnahmen verfügt.
2.
2.1. Die Beschwerde an das Bundesgericht setzt ein schutzwürdiges bzw. rechtlich geschütztes Interesse an der Aufhebung oder Änderung des angefochtenen Entscheids voraus (Art. 89 Abs. 1 lit. c bzw. <ref-law>). Dabei ist zu berücksichtigen, dass lediglich das Dispositiv in Rechtskraft erwächst, nicht aber die Erwägungen des angefochtenen Entscheids, und deshalb auch nur das Dispositiv angefochten werden kann (<ref-ruling> E. 2.4.2 S. 120).
2.2. Die Vorinstanz ist auf die Eingabe des Beschwerdeführers mangels hinreichender Begründung (vgl. E. 3 des angefochtenen Entscheids) bzw. wegen Nichtleistung des Kostenvorschusses (vgl. E. 4 des angefochtenen Entscheids) nicht eingetreten. Mit diesen Ausführungen setzt sich der Beschwerdeführer nicht auseinander. Er bringt lediglich vor, das Verwaltungsgericht sei nach seinem Wegzug in den Kanton Thurgau nicht mehr zuständig gewesen. Selbst wenn diese Behauptung zutreffen würde, würde sich am vorinstanzlichen Dispositiv nichts ändern, weil das Verwaltungsgericht in diesem Fall infolge fehlender Zuständigkeit auf die Beschwerde nicht hätte eintreten dürfen. Folglich bleibt es so oder anders beim vorinstanzlichen Nichteintretensentscheid und hat der Beschwerdeführer in diesem Punkt kein Interesse an der Aufhebung oder Abänderung des angefochtenen Entscheids. Die Beschwerde erweist sich insofern als offensichtlich unzulässig.
2.3. Anzufügen ist, dass der Beschwerdeführer im vorinstanzlichen Verfahren einen Entscheid des Sicherheits- und Justizdepartements des Kantons St. Gallen angefochten hat. Zuständige Beschwerdeinstanz ist damit ausschliesslich das St. Galler Verwaltungsgericht, und zwar unabhängig vom Wohnsitzkanton des Beschwerdeführers. Entgegen der Auffassung des Beschwerdeführers bewirkt sein Wegzug nicht, dass das Rechtsmittelverfahren im Kanton Thurgau fortgesetzt wird und eine Thurgauer Instanz den St. Galler Verwaltungsentscheid überprüfen müsste. Folglich hat sich das Verwaltungsgericht zu Recht für zuständig erklärt (vgl. E. 1 des angefochtenen Entscheids) und ist eine Verfahrensüberweisung an den Kanton Thurgau nicht angezeigt.
3.
Soweit der Beschwerdeführer die vorinstanzliche Kostenauflage pauschal als "klare Rechtsverletzung" rügt, genügt die Beschwerde offensichtlich weder den allgemeinen Begründungsanforderungen nach <ref-law> noch - da es um die Anwendung von kantonalem Prozessrecht geht - der strengen Begründungspflicht nach <ref-law>. Im Übrigen ist darauf hinzuweisen, dass der Beschwerdeführer das vorinstanzliche Verfahren selber eingeleitet und auch das angebliche Verfahrenshindernis durch seinen Wegzug in den Kanton Thurgau gesetzt hat, sodass eine Kostenauflage selbst dann nicht zu beanstanden wäre, wenn das Verwaltungsgericht tatsächlich nicht (mehr) zuständig gewesen wäre.
4.
Zusammenfassend weist die Beschwerde offensichtlich keine hinreichende Begründung auf, soweit sie nicht offensichtlich unzulässig ist. Darauf ist im vereinfachten Verfahren nicht einzutreten (Art. 108 Abs. 1 lit. a und b BGG). Die Gerichtskosten sind dem Beschwerdeführer aufzuerlegen (<ref-law>).

Demnach erkennt der Präsident:
1.
Auf die Beschwerde wird nicht eingetreten.
2.
Die Gerichtskosten von Fr. 500.-- werden dem Beschwerdeführer auferlegt.
3.
Dieses Urteil wird den Verfahrensbeteiligten, dem Verwaltungsgericht des Kantons St. Gallen, Abteilung II, und dem Staatssekretariat für Migration schriftlich mitgeteilt.
Lausanne, 12. Februar 2020
Im Namen der II. öffentlich-rechtlichen Abteilung
des Schweizerischen Bundesgerichts
Der Präsident: Seiler
Der Gerichtsschreiber: Businger