私はForm1の別のフォームvb.netから機能を実行します
Public Module Main
Public Sub Main()
End Sub
End Module
にメイン()という関数をモジュール本体を()持っていると私は(Form1.MainをやってForm2を からこれを実行したいです)は、form1という名前のform2のクラスを検索するため動作しません。
どうすればいいですか?
私はForm1の別のフォームvb.netから機能を実行します
Public Module Main
Public Sub Main()
End Sub
End Module
にメイン()という関数をモジュール本体を()持っていると私は(Form1.MainをやってForm2を からこれを実行したいです)は、form1という名前のform2のクラスを検索するため動作しません。
どうすればいいですか?
私はあなたの問題を見つけたと信じています。 Main
は予約されたキーワードのようです(または少なくともVisual Studioにはいくつかの目的があります)。クラスやモジュール名として使用することはできません。
あなたが例MainModule
のためにモジュールの名前を変更した場合、あなたはそれから呼び出すことができます:
MainModule.Main()
はい、これは私のために働いています!もう一度ありがとう:) – Randomizers
@Randomizers:問題ありません! –
あなたはまた、あなたが実行したいあなたのルーチンをターゲットにするの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は存在しないという問題があります。 – Randomizers
私の最後の提案はどうですか?また、コードを追加してください。ここでは全体像を見ることはできません。なぜフォームの中にモジュールが必要なのですか? –