0

わかりましたので、フォームに多数のボタンがあり、クリックされたボタンに基づいて特定の番号を表示するラベルが必要です。たとえば、ボタンの行 1 のボタンのいずれかがクリックされた場合、ラベルには 10 が表示されます。行 2 のボタンのいずれかがクリックされた場合、ラベルには 17 が表示されます。

4

2 に答える 2

2

キーワードを使用してHandles、1 つのメソッドを使用して、複数のオブジェクトから複数のイベントを処理できSubます。たとえば、次のようになります。

Private Sub Row1ButtonHandler(ByRef obj As Object, ByRef ea As EventArgs) _
    Handles Button1.Click, Button2.Click, Button3.Click
    Label1.Text = "1"
End Sub

Private Sub Row2ButtonHandler(ByRef obj As Object, ByRef ea As EventArgs) _
    Handles Button4.Click, Button5.Click, Button6.Click
    Label1.Text = "17"
End Sub

ご覧のとおり、これらの各ハンドラ メソッドは、行内のいずれかのボタンがクリックされるたびに呼び出されるようになりました。

AddHandlerただし、およびRemoveHandler関数を使用してプログラムでイベント ハンドラーをセットアップする方が簡単な場合があります。

For c As Int32 = 0 to 10
    Dim btn As Control = Page.FindControl("Button" & c)
    AddHandler btn.Click, AddressOf MyEventHandler
Next c

ここではジェネリックを使用Controlし、Web ページを見ていると想定していますが、おそらく LinkBut​​ton コントロールを使用することで、より具体的になる可能性があることに注意してください。

于 2013-02-27T12:45:30.607 に答える
0

すべてのボタンにハンドルを使用し、送信者の値でボタンを取得してから、ロジックを追加できます。あなたを助けるかもしれません...

于 2013-02-27T12:50:46.587 に答える