【发布时间】:2012-01-26 15:17:53
【问题描述】:
我最近注意到 Visual Studio 设计器(我猜它就是这样称呼的)一直在删除我的一些方法句柄。有没有办法阻止设计师这样做?
我的意思的一个例子是这样的: 当我的 MainForm 关闭时,我有一个名为 MainForm_Closing 的方法 - 基本上是“你想保存更改吗?”迅速的。埋在我的 Main.design.cs 中的是一行:
this.FormClosing += new System.Windows.Forms.FormClosingEventHandler(this.MainForm_Closing);
在与我的 MainForm 对象相关的部分中。
但是,如果我对 MainForm 进行任何视觉更改(将控件拖到其上、编辑标签名称、更改图像属性等),Visual Studio 中创建设计器的部分似乎会清除我的自定义代码.
我猜想在编译时调用设计器来创建designer.cs(以便它可以轻松编译为IL),因此理所当然地删除了我的自定义句柄。
顺便说一句:我正在生成自定义句柄,这是在 IntelliSense 的帮助下创建的。例如我输入:
this.FormClosing +=
IntelliSense 会建议正确的句柄并说“按 TAB 键插入”)。
任何帮助理解这一点(并阻止 Visual Studio 删除我的句柄)将不胜感激。
【问题讨论】:
-
您正在向 Designer.cs 添加代码?
-
您是从“属性”窗格还是直接在 *.designer.cs 文件中添加了 EventHandler? P类似的问题回答得很好。 stackoverflow.com/questions/3786512/…
-
仅处理 FomrClosing 和 TreeView.MouseClick 等方法。我认为我应该将此代码添加到其他地方?
-
是的,在属性窗格中添加 EventHandlers,而不是直接在设计器文件中。
标签: c# winforms visual-studio-2008 windows-forms-designer