2016-04-24 5 views
3

私はForm1の別のフォームvb.netから機能を実行します

Public Module Main 
Public Sub Main() 

End Sub 
End Module 

にメイン()という関数をモジュール本体を()持っていると私は(Form1.MainをやってForm2を からこれを実行したいです)は、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

あなたはまた、あなたが実行したいあなたのルーチンをターゲットにするの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 
関連する問題