2016-04-24 14 views
3

Ich habeFühren Sie eine Funktion aus einer anderen Form vb.net

Public Module Main 
Public Sub Main() 

End Sub 
End Module 

in Form1 mit einer Funktion namens Main() Modul Main() bekam Und ich will tun Form1.Main dies von Form2 laufen () wird nicht funktionieren, weil das nach einer Klasse in form2 namens form1 suchen wird.

Also wie kann ich das tun?

+0

Das ist ein Modul, kein Formular. Sie würden 'Main.Main()' oder nur 'Main()' nennen. Wenn das Modul in Form1 verschachtelt ist, müssen Sie 'Form1.Main.Main()' aufrufen. –

+0

Ich weiß das bereits, aber das Problem ist, dass Main.Main() oder Main() der Code wird sich auf Form2 beziehen, und es gibt keine Main.Main in Form2. – Randomizers

+0

Was ist mit meinem letzten Vorschlag? Außerdem fügen Sie bitte mehr Code hinzu. Wir können hier nicht das ganze Bild sehen. Warum brauchst du überhaupt ein Modul in einer Form? –

Antwort

3

Ich glaube, ich habe dein Problem gefunden. Main scheint ein reserviertes Schlüsselwort zu sein (oder es dient Visual Studio zumindest zu einem anderen Zweck), sodass Sie es nicht als Klassen- oder Modulnamen verwenden können.

Wenn Sie das Modul zum Beispiel MainModule umbenennen, Sie sind dann in der Lage zu nennen:

MainModule.Main() 
+0

Ja, das funktioniert für mich! Danke nochmal :) – Randomizers

+0

@Randomizers: Kein Problem! –

0

Sie auch die Struktur des Form1 und Form2-Klasse verwenden, können Sie Ihre Routinen zum Ziel, die Sie ausführen möchten.

public class form1 
public shared sub testsub() 
msgbox("hello world") 
end sub 
end class 

public class form2 
public shared sub testsub2() 
' this will allow you to call a sub from form1 this also works with variables, functions, ect 
form1.testsub() 
end sub 
end class 
Verwandte Themen