2013-02-26 145 views
1

我正在使用Visual Studio 2010,当我创建表单时,我得到一个FormName.Designer.cs文件,其中包含所有自动生成的代码。* .Designer.cs文件丢失

这正是然而,我想要的东西,当我做到以下几点:

  1. 创建一个空的类。
  2. 子类System.Windows.Forms.Control
  3. 添加一个System.Windows.Forms.ImageList给设计师。
  4. 将图像添加到设计器中的ImageList中。

所有自动生成的代码都被丢弃在我的类文件中,并且我没有收到*.Designer.cs文件。

如何让VS始终使用*.Designer.cs文件?


更新

声明一个类部分和子类用户控件是不够的。当我创建一个新的Item时,我不得不选择“UserControl”,然后我得到了一个designer.cs文件。

+0

VS只会创建一个,如果它是该项目模板的一部分。没有测试过,但我知道如果你手动创建一个设计器文件(如果一切顺利的话)会折叠到相关的父文件中,在这种情况下它应该使用该文件。 – 2013-02-26 23:12:00

+1

如果你创建一个空类(步骤1),然后从'Control'(步骤2)派生,你怎么突然有一个'designer.cs'文件来添加一个'ImageList'控件? VS通常不会创建设计器文件,除非您选择添加新的表单。 – 2013-02-26 23:16:52

+0

@sneakthief,它不是创建designer.cs文件,这是问题。我要一个。我有一个设计视图,我可以从工具箱中拖动控件,但没有designer.cs文件。 – Jay 2013-02-26 23:23:48

回答

4

这是正常的,设计者在VS2005之前版本的Visual Studio中工作的方式,版本尚不支持部分类。您只能从Form或UserControl 派生的类获取单独的Designer.cs文件,并使用partial关键字声明它们。

不是100%确定是什么原因,但它肯定与Control类的非常简单的设计器有关。 Form和UserControl的设计者更有趣。

没有什么实际出错,所以这不是一个真正的问题。对于降压来说很少有爆炸,尤其是当您创建自定义控制时,实际上需要另一个组件或控件是非常罕见的。让“属性”窗口工作起来很方便,但根据我个人的经验,当您在“解决方案资源管理器”窗口中双击该类时,默认情况下无法获取设计器页面。我失去了数次我大声喊叫“糟糕!”的次数在机器上。