我想将一个GotFocus事件添加到Windows窗体文本框中,所以我使用了this问题中描述的方法;它有效,但在我运行我的应用程序几次后,这段代码会自行删除,我不知道为什么。
这是不断删除自己的代码:
txtID.GotFocus += txtID_GotFocus;
答案 0 :(得分:2)
肯定是另一个证据,说明为什么你不应该触及设计师生成的代码,并且应该注意这个警告:do not modify the contents of this method with the code editor.
作为解决方法,使用Enter
事件(建议使用)。您也可以在Load
形式的事件中分配处理程序。
答案 1 :(得分:2)
它消失了,因为在添加事件处理程序时,您不会使用WinForms设计器使用的约定。
您使用GotFocus
还是Enter
事件并不重要。如果您(在Designer.cs中)以这种方式手动添加事件处理程序:
txtID.Enter += txtID_Enter;
然后,下次你在设计师表面移动控件时,它总会从设计师身上消失。
您必须以这种方式添加事件处理程序:
txtID.GotFocus += new System.EventHandler(txtID_Focus);
txtID.Enter += new System.EventHandler(txtID_Enter);
并且没有任何东西会消失,因为它是设计师期望代码的方式。