C#学习教程:给文本框添加/删除处理器在this.Controls){if(tbisTextBox){TextBoxtb1=(TextBox)tb;tb1.KeyDown+=newKeyEventHandler(TextBox_KeyDown);我还使用以下代码删除处理程序:privatevoidfrmLogin_FormClosed(objectsender,FormClosedEventArgse){foreach(Controltbinthis.Controls){if(tbisTextBox){tb1.KeyDown-=newKeyEventHandler(TextBox_KeyDown);这是正确的方法还是有更好的选择?很好,但是您不需要删除处理程序,只需调用它即可添加处理程序:tb1.KeyDown+=TextBox_KeyDown;因为新的KeyEventHandler(TextBox_KeyDown);是多余的。你的方法没问题。添加和删??除事件处理程序委托时,可以省略新的KeyEventHandler和围绕TextBox_KeyDown的括号。这些由编译器隐含(只要TextBox_KeyDown方法具有预期的签名)。当然,这纯粹是偏好问题。是的,完全正确。但是您可以使用速记符号:tb1.KeyDown-=TextBox_KeyDown;效果是完全一样的。但是是否值得确定事件处理程序是否真的需要删除?表单和文本框的生命周期是什么?如果表单“拥有”TexBox,即它的寿命更长,那么您不需要删除事件处理程序。要删除一个事件处理程序,您应该这样做:以上是C#学习教程:Add/Removehandlerstothetextbox分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——tb1.KeyDown-=TextBox_KeyDown;本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
