<System.Runtime.CompilerServices.Extension()> _
Public Sub RegistButtonClick(ctrs As Control(), btnClick As EventHandler)
Dim lstButtons = ctrs.Where(Function(btn) TypeOf btn is Button)
For Each btn As Button In lstButtons
AddHandler btn.Click, btnClick
Next
End Sub
'画面启动时设定所有按钮的click处理
private sub Onload()
me.controls.RegistButtonClick(AddressOf CommonClick )
end sub
’处理方法的先后顺序参照设定的顺序。
end sub
’处理方法的先后顺序参照设定的顺序。
‘本方法在initionalizeComponent里优先设定过,所以先处理。
private sub btn1_Click (sender As object , e As EventArgs) Handler btn1.Click
Console.WriteLine("1")
end sub
'共通処理方法
private sub CommonClick (sender As object , e As EventArgs) Handler btn1.Click
Console.WriteLine("99")
end sub
处理結果顺序:
1
99
private sub btn1_Click (sender As object , e As EventArgs) Handler btn1.Click
Console.WriteLine("1")
end sub
'共通処理方法
private sub CommonClick (sender As object , e As EventArgs) Handler btn1.Click
Console.WriteLine("99")
end sub
处理結果顺序:
1
99
<System.Runtime.CompilerServices.Extension()>是net3.5的方法扩展功能、
需要在Module中设定。
没有评论:
发表评论