2016-04-24 71 views
3

我有模块的Main()用在Form1中从另一种形式vb.net运行功能

Public Module Main 
Public Sub Main() 

End Sub 
End Module 

称为main()函数,我想从窗体2 做Form1.Main(运行此)将不起作用,因为它将在名为form1的form2中查找类。

那么我该如何做到这一点?

+0

这是一个模块,而不是一个表单。你可以调用'Main.Main()'或者'Main()'。如果模块嵌套在Form1中,则必须调用'Form1.Main.Main()'。 –

+0

我已经知道了,但问题是键入Main.Main()或Main()代码将引用Form2,并且Form2中没有Main.Main。 – Randomizers

+0

我最后的建议呢?另外,请添加更多代码。我们在这里看不到整个画面。为什么你甚至需要一个表单中的模块? –

回答

3

我相信我找到了你的问题。 Main似乎是一个保留关键字(或者它至少为Visual Studio提供了其他一些用途),因此您不能将其用作类或模块名称。

如果重命名模块,例如MainModule,你就能够调用:

MainModule.Main() 
+0

是的,这是为我工作!再次感谢:) – Randomizers

+0

@Randomizers:没问题! –

0

,你也可以使用Form 1和Form类的结构来定位你想运行您的程序。

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