本文共 1734 字,大约阅读时间需要 5 分钟。
在项目中经常遇到在代码运行时动态 增加 / 删除 控件的事件.
C#:控件代码部分
Button btnSave = new Button(); btnSave.Name = “btnSave”; btnSave.Text = “Save”; // 增加 Click事件 btnSave.Click += new EventHandler(btnSave_Click); //删除事件 //btnSave.Click -= new EventHandler(btnSave_Click);事件代码部分
private void btnSave_Click(object sender, EventArgs e)
{ //…要执行的代码 }//如果是简单的事件代码,例如只有几行,也可以用lamb更加简洁
例如: private void InitWiList(string[] arrWiNo) { foreach (var item in arrWiNo) { RadioButton rd = new RadioButton(); rd.Text = item; // rd.Click += new EventHandler(btnRefresh_Click); //以下事件使用lamb rd.Click += (obj, e) => { MessageBox.Show((obj as RadioButton).Text); }; this.Controls.Add(rd); } }VB:
.增加事件 AddHandler CType(btnSave, Button).Click, AddressOf Me.btnSave_Click .删除事件 RemoveHandler CType(btnSave, Button).Click, AddressOf Me.btnSave_Click'关联一个function
AddHandler btnUpload.Click, Function() '关联一个sub AddHandler btnUpload.Click, AddressOf btnUpload_Click'Function
Private Function Upload_Date(ByVal cmd As String) Return “Uploaded.” End Function 'Sub Private Async Sub btnUpload_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUpload.Click MsgBox(“Upload_Date!”) End Sub微软DOCS 上的例子
Sub TestEvents()
Dim Obj As New Class1 ’ Associate an event handler with an event. AddHandler Obj.Ev_Event, AddressOf EventHandler ’ Call the method to raise the event. Obj.CauseSomeEvent() ’ Stop handling events. RemoveHandler Obj.Ev_Event, AddressOf EventHandler ’ This event will not be handled. Obj.CauseSomeEvent() End SubSub EventHandler()
’ Handle the event. MsgBox(“EventHandler caught event.”) End SubPublic Class Class1
’ Declare an event. Public Event Ev_Event() Sub CauseSomeEvent() ’ Raise an event. RaiseEvent Ev_Event() End Sub End Class转载地址:http://uimdi.baihongyu.com/