Visual C#GUI设计器-删除生成的事件处理程序代码的推荐方法
我是Visual C#designer的新手,所以这些都是关于如何与设计师合作的基本问题 例如,当我们向表单添加标签,然后在Visual C#designer(我使用的是Microsoft Visual C#2008 Express Edition)中双击它时,会发生以下情况:Visual C#GUI设计器-删除生成的事件处理程序代码的推荐方法,c#,gui-designer,C#,Gui Designer,我是Visual C#designer的新手,所以这些都是关于如何与设计师合作的基本问题 例如,当我们向表单添加标签,然后在Visual C#designer(我使用的是Microsoft Visual C#2008 Express Edition)中双击它时,会发生以下情况: 设计器在Form1.designer.cs中生成代码(为简单起见,采用默认名称)以添加标签 然后双击它将使用以下代码将事件处理程序标签添加到Form1.Designer.cs中的标签中 this.label1.Click
private void label1_Click(object sender, EventArgs e)
{
}
如果我现在删除标签,那么只有Form1.Designer.cs中的代码将被删除,但是label1\u Click方法将保留在Form1.cs中,即使它没有被其他任何东西使用。但是如果我在设计器中使用reset intheproperties->Events作为Click事件,甚至Form1.cs中的label1\u Click方法都会被删除
1)这不是有点不一致的行为吗
2.)删除此类生成的事件处理程序代码的建议方法是什么
3.)使用设计师的最佳“心理方法”/“最佳实践”是什么
我会通过精神分离的方式来处理它,Form1.cs是我100%的责任,另一方面,我根本不涉及Form1.Designer.cs中的代码。这有意义吗?由于有时设计师会从Form1.cs中删除某些内容,我对此不确定。Visual Studio中可能内置了安全元素 例如:
- 添加按钮和单击事件
- 参考按钮A从另一个按钮B单击事件
- 移除按钮A
- 如果代码消失,则按钮B将断开
- 如果代码仍然存在,则按钮B继续工作
ByButton.Click += (source, evArg) => { SomeHandler(...); };
对于v.2.0:
ByButton.Click += delegate(object source, EventArgs evArgs) { SomeHandler(...); };
有很多好处:处理程序不必使用特定的方法配置文件;如果匿名处理程序足够短,您可以将整个代码放在匿名处理程序中,以lambda形式,您可能永远不需要知道事件参数的类型…我只是删除孤立的事件处理程序。