それはそれはほんの数ラベルよりも長く退屈になります
Private Sub LI_Click(sender As Object, e As EventArgs) Handles Label1.Click, Label2.Click, Label3.Click
のスタイルで1つのハンドラに複数のイベントを追加するのは簡単ですが。
ハンドラを追加する必要があるラベルを参照する方法が見つかると、ハンドラをプログラムで追加できます。この例では、私は「GroupBoxOptions」という名前のグループボックス内のすべてのラベルを置く:
Option Infer On
Option Strict On
Public Class Form1
Sub TransferDataToEditBox(sender As Object, e As EventArgs)
Dim lbl = DirectCast(sender, Label)
tbEditThis.Text = lbl.Text
End Sub
Sub InitLabelHandlers()
For Each lbl In GroupBoxOptions.Controls.OfType(Of Label)
AddHandler lbl.Click, AddressOf TransferDataToEditBox
Next
End Sub
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
InitLabelHandlers()
End Sub
End Class
あなたはハンドラを使用するラベルを選択するいくつかの他の方法を持っていることがあります。
ラベルはグループボックス内にあるなど、他のラベルと区別するために共通のものがありますか? –
すべてが同じ場所に書き込む場合は、すべてのラベルをとしてリストすることでこのコードを単純化できます。 。 。 LI_L.Click、LI_M.clickを処理します。 。 。 。等々。次に、特定のラベルをsender.text – peterG
に置き換えてください。[MSDN](https://msdn.microsoft.com/en-us/library/aa289500(v=vs.71).aspx) – Abood