Mar*_*rkJ 11
只知道C#或只知道VB.Net的开发人员可能不知道这是VB.NET和C#之间的较大差异之一.
我将无耻地复制 VB事件的这个很好的解释:VB使用声明性语法来附加事件.该手柄条款出现在将处理该事件的代码.适当时,多个方法可以处理相同的事件,并且可以通过相同的方法处理多个事件.Handles子句的使用依赖于出现在基础变量声明(如按钮)上的WithEvents修饰符.您还可以使用AddHandler关键字附加属性处理程序,并使用RemoveHandler删除它们.例如
Friend WithEvents TextBox1 As System.Windows.Forms.TextBox
Private Sub TextBox1_Leave(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles TextBox1.Leave
'Do Stuff '
End Sub
Run Code Online (Sandbox Code Playgroud)
在C#中,您无法使用声明性语法.你使用重载的+ =来充当VB.Net AddHandler.以下是tster答案中无耻地窃取的一个例子:
public MyClass()
{
InitializeComponent();
textBox1.Leave += new EventHandler(testBox1_Leave);
}
void testBox1_Leave(object sender, EventArgs e)
{
//Do Stuff
}
Run Code Online (Sandbox Code Playgroud)
在C#2及更高版本中,您可以添加如下事件处理程序:
yourObject.Event += someMethodGroup;
Run Code Online (Sandbox Code Playgroud)
签名someMethodGroup与代表签名匹配的地方yourObject.Event.
在C#1中,您需要显式创建一个这样的事件处理程序:
yourObject.Event += new EventHandler(someMethodGroup);
Run Code Online (Sandbox Code Playgroud)
现在方法组,事件的签名EventHandler必须匹配.
public MyClass()
{
InitializeComponent();
textBox1.LostFocus += new EventHandler(testBox1_LostFocus);
}
void testBox1_LostFocus(object sender, EventArgs e)
{
// do stuff
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
27130 次 |
| 最近记录: |