从另一个窗体vb.net运行函数

从另一个窗体vb.net运行函数,vb.net,forms,Vb.net,Forms,我有一个模块Main(),在Form1中有一个名为Main()的函数 Public Module Main Public Sub Main() End Sub End Module 我想从Form2运行这个 执行Form1.Main()将不起作用,因为这将在form2中查找名为Form1的类 那我该怎么做呢?我想我已经发现了你的问题Main似乎是一个保留关键字(或者它至少对VisualStudio还有其他用途),因此不能将其用作类或模块名 如果将模块重命名为例如MainModule,则

我有一个模块Main(),在Form1中有一个名为Main()的函数

Public Module Main 
 Public Sub Main()

 End Sub
End Module
我想从Form2运行这个 执行Form1.Main()将不起作用,因为这将在form2中查找名为Form1的类


那我该怎么做呢?

我想我已经发现了你的问题
Main
似乎是一个保留关键字(或者它至少对VisualStudio还有其他用途),因此不能将其用作类或模块名

如果将模块重命名为例如
MainModule
,则可以调用:

MainModule.Main()

您还可以使用Form1和Form2类的结构来针对您希望运行的例程

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

这是一个模块,不是一个表单。您可以调用
Main.Main()
或只调用
Main()
。如果模块嵌套在Form1中,您必须调用
Form1.Main.Main()
。我已经知道这一点,但问题是键入Main.Main()或Main()代码将引用Form2,而Form2中没有Main.Main。我的最后一个建议是什么?另外,请添加更多代码。我们在这里看不到全貌。为什么你甚至需要一个表单中的模块?给你发了一封电子邮件,上面有更好的解释。我的意思是,它在form2中查找main,而我想调用的main在form1中看起来很奇怪。。。您确定表单2中没有名为
Main
的内容吗?(哦,我已经回复了你的邮件)@Randomizers:没问题!