その後、あなたはコンストラクタ
Public Sub New()
InitializeComponents()
AddHandler button1.Click, AddressOf Button_Click
AddHandler button2.Click, AddressOf Button_Click
AddHandler button3.Click, AddressOf Button_Click
' ...
End Sub
または「読みにくく」を使用中のすべてのボタンにこのハンドラを「付ける」ことができ、すべてのボタンに
Private Sub Button_Click(sender As Object, e As EventArgs)
Dim button As Button = DirectCast(sender, Button)
Dim name As String = button.Name
' use name
End Sub
を一つだけのイベントハンドラを作成し、大量のコントロールの場合、アプローチ - Handles
キーワード
Private Sub Button_Click(sender As Object, e As EventArgs) Handles button1.Click,
button2.Click,
button3.Click,
button4.Click
' code
End Sub
パラメータの種類は、あなたが期待される型に
parameter
をキャストし、それを使用する必要
object
あるので
sender
-
通常イベントを発生させたコントロールのインスタンスを提供するEventHandler。
タイトルは非常に明確ではありません。ボタンをクリックすると、名前を取得できるクリックハンドラが呼び出されます。 – Plutonix
私は、各ボタンをダブルクリックする必要はなく、個別の手順の外でそれを単式で行う方法があれば、個々のボタンをコーディングする必要があるということです。各ボタンには、ボタンの名前に応じてわずかに変更された同様のコードがあります。 – AshIsBlue
生成されたクリックハンドラを使用する代わりに、単一のハンドラを作成し、新しいハンドラへの各ボタンの追加ハンドラをloadフォームで実行できます。新しいハンドラでは、特定のコードを実行するために、クリックされたコントロール名に巨大なselect文(またはif-elseをカスケードする)があります。しかし、これは誤ったメリットです。私の意見では、タスクに固有のより小さな特定のモジュールを用意するよりも、1つの大きなルーチンを作成しています。将来のメンテナンスのためには、かなり難しくなります。 – MarkL