在C#Windows窗体应用程序项目中更改自动生成的代码

mat*_*lof 2 c# project auto-generate winforms

当您在Visual Studio 2008中打开一个新的C#Windows窗体应用程序项目时,您将获得大量自动生成的代码(AssemblyInfo.cs,Resources.Designer.cs,Settings.Designer.cs,Form1.Designer.cs,Form1.resx,Program的.cs).

除了将工具箱中的组件添加到Form1.cs [Design]和代码到Form1.cs之外,您可以更改哪些文件?如何?应该保留哪些文件?

PS:据我所知,这是一个广泛的主题.我不希望得到详尽的答案.您需要分享的任何信息都可以.我还想提一下,我是一个C#初学者,只想要最基本的信息.

PPS:如果您正在考虑回答"搜索互联网"或类似问题,请不要.我已经搜索过互联网,并会一次又一次地搜索,直到找到我正在寻找的答案.我找到了一些有用的信息,但我觉得我需要更多.我想我很可能会在stackoverflow.com上得到它.


更新1:此问题已得到解答.我已经接受了sh_kamalh的回答.我想将David和Hans Passant的答案标记为已被接受,但我认为您不能将多个答案标记为已接受的答案.或者你呢?

从我可以从答案中解脱出来,你永远不应该在Visual Studio 2008中的C#Windows窗体应用程序项目中更改自动生成的代码.但是,我不了解答案中的所有内容,并且可能忽略了某些内容.

如果您不同意上述摘要或下面的答案,请随意添加一个矛盾的答案.或者,如果您有一个补充以下答案的答案,请随意添加该答案.我相信在这个问题上还有更多要说的.


更新2:您似乎也可以编写自己的C#Windows窗体应用程序项目版本(请参阅下面的Davids答案,我在编写"Update 1"时忘记了这一点).如果你这样做,你似乎应该从头开始.

Han*_*ant 6

自动生成的文件:

  • AssemblyInfo.cs:其中的属性由Project + Properties,Application Tab,Assembly Information按钮设置.直接编辑文件是可以的,IDE不容易被它搞糊涂.

  • Settings.Designer.cs:从Settings.settings文件自动生成,然后由Settings设计器生成.对此文件的任何编辑都将很快丢失.

  • Resources.Designer.cs:从Resources.resx文件自动生成,而该资源又是从Resources设计器生成的.对此文件的任何编辑都将很快丢失.

  • Form .Designer.cs:由表单设计器自动生成.可以编辑此文件,没有存储表单布局的独立文件.通过在设计时运行此代码并使用Reflection恢复表单和控件属性来生成设计视图.当您关闭设计器时再次保存,它会重新生成InitializeComponent方法和控制变量.让代码更改以在此过程中生存需要完全编写代码设计师本身的方式.当您进行超出简单属性值更改的更改时,这是相当不重要的.也存在相当大的风险,不明智的变化很容易导致异常.当这种情况发生在设计时,你就会得到臭名昭着的WSOD(白色银幕),它会显示一个经常非常神秘的例外,并告诉你不能再设计你的表格了.

通过观察设计器中修改表单时对InitializeComponent所做的更改,您可以了解设计器生成代码的方式.实现这一点当然不是初学者的材料,当你加快.NET编程速度时,你可能需要学习更多紧迫的东西.设计师可以让您的生活更轻松,并最大限度地降低错误风险.