XXX事件的重载均与委托"System.EventHandler"不匹配


在给动态创建控件添加事件时容易遇到的一个错误就是:XXX事件的重载均与委托"System.EventHandler"不匹配。

假设控件是MovePicBox,使用如下代码添加KeyPress事件,会报不匹配的错。

MovePicBox.KeyPress += new EventHandler(MovePicBox_KeyPress);

private void MovePicBox_KeyPress(object sender, System.EventArgs e)

{

}

问题在哪呢?EventHandler与事件的参数不匹配。

当事件是KeyPress时,事件对应的委托是KeyPressEventHandler,参数是KeyPressEventArgs。

MovePicBox.KeyPress += new KeyPressEventHandler(MovePicBox_KeyPress);

private void MovePicBox_KeyPress(object sender, System.KeyPressEventArgs e)

{

}

因此,给控件添加事件时要注意以下三者匹配:

事件名称--事件对应的委托--事件函数的参数


你可能感兴趣的:(C#)