问题描述
- C# keydown事件求解 如何让响应事件有多个参数?
-
private void Mission_KeyDown(object sender, KeyEventArgs e,short i) { if (e.KeyCode == Keys.Enter) { } }
如上。如果我在事件里增加了一个参数,那么我在
MissionTxt[i].KeyDown += new KeyEventHandler(Mission_KeyDown(MissionTxt[i],?,i));的时候如何写事件参数?主要是不知道怎么写第二个!谢谢!
解决方案
你这么弄是无法赋值的,因为参数和KeyEventHandler不匹配,你可以封装一个自定义组件,把keydown风装在里面,自定义事件中可以有自己的参数,控件内部触发keydown时,同时触发你的自定义事件,然后把参数传出来
解决方案二:
用匿名方法:
int i = 0;
MissionTxt[i].KeyDown += new KeyEventHandler((sender, e) =>{
if (e.KeyCode == Keys.Enter)
{
//使用i
}
});
时间: 2024-08-22 15:15:07