使用VS2013 Pro,WinForms,调试器会不断删除我的事件处理程序。 (我将它们放在Form.Designer.cs文件中)
我最近才注意到它,我很肯定我没有改变任何设置。
其他人可以复制这个或者它只是我系统上的东西吗?
复制步骤:
答案 0 :(得分:4)
如果您手动添加了事件处理程序,那么无论何时从Designer更改某些内容,Form.Designer.cs都会重新生成并删除您的事件处理程序(在代码中手动添加的事件处理程序)
您需要做的是从Control属性添加事件处理程序。
例如,如果您在Designer中对此进行编码:
myControl.Click += myClickHandler;
只要您在设计器中更改某些内容,它就会被删除,因为整个.Designer.cs文件已重新生成,并且由于某种原因,VS不知道手动添加的事件处理程序。
您将看到如果您从Control属性窗口(在设计器中)添加事件处理程序,生成的代码将如下所示:
myControl.Click += new EventHandler(myClickHandler);
另一种解决方法是在.Designer.cs类之外添加处理程序,但简单的方法是从Designer添加处理程序:)。