Hallo Bernd,
dein erster Fehler besteht darin, dass du unter Form1.Anruf_laden anscheinend die Klasse Form1 benutzt. Du benötigst aber eine bestimmte Instanz, nämlich das konkret vorhandene Formular. Dein zweiter Fehler besteht darin, dass du die Abhängigkeiten nicht beachtest: Vermutlich wurde das Eingabe-Formular vom Hauptformular (Form1-Instanz) aufgerufen; also musst du sicherstellen, dass wirklich dessen Methode Anruf_laden benutzt wird. Dazu gibt es zwei Möglichkeiten:
1. Eingabe-Formular wird mit ShowModal aufgerufen (einfache und vernünftige Lösung, passt aber nicht immer), die Rückgabe des Wertes erfolgt über eine Nur-Lesen-Eigenschaft dieses Formulars:
Using(secondForm As EingabeFormular = New EingabeFormular() )
Begin
secondForm.ShowModal()
Dim result As Integer = secondForm.ResultValue
End Using
Achtung: Pseudo-Code. ResultValue wird in deinem Code vor dem Close zugewiesen.
2. Über einen Delegate (sauberes, aber etwas kompliziertes Vorgehen): Es wird ein Delegate erzeugt mit den Argumenten, die Anruf_laden benötigt. Im EingabeFormular wird eine Variable vom Typ dieses Delegate deklariert. Nach dem Erzeugen des Formulars übergibt das Hauptformular die "Adresse" von Anruf_laden an das EingabeFormular (z.B. über eine Methode SetAnrufLaden), dort wird dieser Wert der Delegate-Variable zugewiesen. Dann kannst du sie direkt aufrufen. Pseudo-Code im Hauptformular:
secondForm As EingabeFormular = New EingabeFormular()
secondForm.SetAnrufLaden(Anruf_Laden)
secondForm.Show()
Pseudo-Code im Eingabeformular:
Dim anrufLaden As MySimpleDelegate
Sub SetAnrufLaden(value As MySimpleDelegate)
anrufLaden = value
End Sub
' und später
anrufid = txtanrufid.Text
anrufLaden(anrufid)
Close()
Auf jeden Fall musst du darauf achten, dass alles Wichtige vor dem Close auszuführen ist.
Gruß Jürgen