2016-04-08 25 views
-2

私はVB.Netを使用している初心者です。フォームがあり、外部クラスモジュールを使用して、フォーム上のすべてのコントロールの イベントを処理する必要があります。 このクラスにパラメータ・フォームのみを渡すことで、これをどのように行うことができますか? ありがとうございました。クラスモジュールからVB.netフォーム上のすべてのコントロールのイベントを処理します

+0

すべてのイベント、または特定のイベントのみが表示されますか?フォーム上のすべてのコントロールは公開された 'Controls'プロパティを介して公開されているので、それらのすべてをループし、それぞれのイベントハンドラを追加するのは比較的簡単です。入れ子にされたコントロールがある場合は、少し難しくなりますが、まだ実行可能です。しかし、*すべての*イベントを処理したい場合、それはいくらかの反映を必要とします。 –

+0

あなたは実際の問題が解決しようとしていることを説明してください。 –

答えて

0

ちょっと混乱した後に - これが動作します。

イベントハンドリングクラスは、メインフォームファイルの末尾にあるEnd Classの後ろに、すべてのイベント処理コード(または別のファイル)で作成してください。重要ではありません。新しいクラスのすべてのサブプログラムがsharedキーワードで宣言されている限り、 - これは

Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown 
    AddHandler Button1.Click, AddressOf otherclass.test2 
End Sub 

だから今のように - - あなたのメインのコードでは、この

Friend Class Form1 

    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Shown 

    End Sub 

End Class 

Public Class OtherClass 

    Public Shared Sub test2(sender As Object, e As EventArgs) 
     MessageBox.Show("hi") 
    End Sub 

End Class 

のように、あなたがイベントにあなたの他のクラスのコードをサブスクライブするのAddHandlerを使用する必要があり、上記のコードに基づいて、ボタンをクリックすると、メッセージボックスが表示されます。こんにちは

関連する問題