问题描述
namespaceeventexc{publicpartialclassForm1:Form{publicdelegatevoidab(objectsender,EventArgse);publicForm1(){InitializeComponent();}privatevoidForm1_KeyDown(objectsender,KeyEventArgse){if(e.KeyValue==13){button1.Click+=newab(button1_Click);这一行换成button1.Click+=newEventHandler(button1_Click);就没了问题但我想问一下这是为什么,为什么自己定义的委托就出了问题了呢?为什么必须用eventhandler}}privatevoidbutton1_Click(objectsender,EventArgse){MessageBox.Show("pressenter");}}}
解决方案
解决方案二:
publiceventEventHandlerClick;click事件需要的是EventHandler类型
解决方案三:
你想自定义委托,你也要自定义事件啊你不能把button原有的事件挂到另一个自定义委托上去
解决方案四:
解决方案五:
C#是强类型语言你以为伪装一个参数签名一样的委托就可以了?~来一个类比publicclassTeacher{publicstringname;}publicclassStudent{publicstringname;}由于她们只有一个name所以你就认为她们是一样的?你在button1.Click的Click上面按一下F12你就会知道它定义的是EventHandler类型的委托所以你只能给他EventHandler类型的~