如果我在部分类中有一个函数(假设我有'Button 2'点击处理程序)然后双击表单设计器中的'Button 2',Intellisense(或现在的任何负责人)总是抛出我来到'Form1.cs模块'(在一个不明确的或空行),而不是新的部分类模块'Button2.cs'。双击“Button1”会执行“正确”操作。
例如:
在'Form1.cs'中:
namespace test01
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
MessageBox.Show("Button 1 pressed");
}
}
}
在'Button2.cs'(公共部分类)中:
namespace test01
{
public partial class Form1 : Form
{
private void button2_Click(object sender, EventArgs e)
{
MessageBox.Show("Button 2 pressed");
}
}
}
这是我在VS2008中看到的,现在在VS2010中,并没有明显的方法(对我而言)来解决它。
有任何帮助吗?
答案 0 :(得分:0)
那是因为你正在设计表单,而不是按钮。设计人员希望(按照惯例)表单上控件的所有事件处理程序都位于表单的源代码中,而不是按钮的源代码。当您考虑(通常)button2.cs可能应该定义名为button2
的类时,这是有道理的,而不是名称属性恰好是“{1}}的实例”按钮2" 。
编辑:
部分类是为了一个非常特定的目的而设计的 - 当一个类由设计者或其他代码生成器生成时,开发人员手动编辑该类通常是不安全的(因为代码生成器将在稍后出现并覆盖该文件,包括开发人员的手写部分)。部分类允许将类拆分为两个文件 - 一个生成(在本例中由设计者生成),一个用于手写代码。因为类被定义为“部分”,所以编译器知道可以在其他文件中定义类的其他部分。
对于具有您所描述的几个不同功能区域的项目,我会将这些功能组织到与UI无关的类中(以便功能可以独立地进行单元测试),然后从UI类中调用它们需要。您应该查看Model-View-Controller或Model-View-ViewModel设计模式等概念,以了解其工作原理。
像这样的文件夹结构作为起点并不合理:
Button