当您在Visual Studio 2008中打开新的C#Windows Forms Application Project时,您将获得大量自动化代码(assemblyInfo.cs,Resources.designer.cs,settings.designer.cs,form1.designer.cs,form1.cs,form1.resx,program,program,program,program,program,program,program program 。CS)。

除了将工具箱中的组件添加到form1.cs [design]和code for form1.cs之外,您可以更改哪些文件?如何?以及应该剩下哪些文件?

PS:据我所知,这是一个庞大的主题。我不希望有详尽的答案。您要分享的任何信息都会做。我还想提到我是C#初学者,只需要最基本的信息。

pps:如果您正在考虑回答“搜索互联网”或类似的内容,则不要。我已经搜索了互联网,并会一次又一次地这样做,直到找到所需的答案为止。我找到了一些有用的信息,但是我觉得我需要更多。我认为我很可能会在Stackoverflow.com上得到它。


更新1:这个问题已得到回答。我将SH_KAMALH的答案标记为已接受。我想将David和Hans Passant的答案标记为已接受的答案,但我认为您不能将多个答案标记为被接受的答案。还是可以?

从我可以从答案中获得的内容,您绝对不应在Visual Studio 2008中的C#Windows表单应用程序项目中更改自动化代码。不过,我不了解答案中的所有内容,并且可能已经忽略了某些内容。

如果您不同意上面的摘要或下面的答案,请随时添加矛盾的答案。或者,如果您有一个补充以下答案的答案,请随时添加该答案。我敢肯定,关于这个主题还有很多话要说。


更新2:看来您还可以编写自己的版本C#Windows表单应用程序项目(请参见下面的Davids答案,当我编写“ Update 1”时,我忘记了。如果您这样做,似乎您也应该从头开始。

有帮助吗?

解决方案

您为什么要更改自动生成的文件?
如果形式,您不应更改.designer.cs或.Resx文件,因为每次更改表单时它们都会生成它们,因此下次代码再生时,您所做的任何更改都将被覆盖。
如果要更改Designer.cs中的内容,则可以在原始CS文件中进行更改,因为该类标记为部分,这意味着将Files formy form.cs和form1.cs and form1.designer.cs的代码组合在一起以生成最终代码。
如果要添加资源,请添加资源文件,并保留生成的.RESX文件完整。对于AssemblyInfo.cs,您可以更改组件的一般信息。

长话短说,只需使生成的文件完好无损。

其他提示

自动生成的文件:

  • assemblyInfo.cs:它内部的属性由项目 +属性,应用程序选项卡,汇编信息按钮设置。直接编辑文件是可以的,IDE不容易被它混淆。

  • settings.designer.cs:自动生成的settings.settings文件又从设置设计器生成。该文件的任何编辑都将很快丢失。

  • Resources.designer.cs:自动从Resources.Resx文件中生成,又是由资源设计器生成的。该文件的任何编辑都将很快丢失。

  • 形式.designer.cs:由表单设计师自动生成。编辑此文件是可能的,没有独立文件存储表单布局。设计视图是通过在设计时间运行此代码并使用反射来恢复表单和控制属性来生成的。并在关闭设计人员时再次保存,它重新生成了初始量化方法和控制变量。使您的代码更改以生存此过程需要编写代码 确切地 设计师本身的方式。当您做出简单的属性价值更改之外的更改时,这是相当毫无用处的。还有很大的风险,不明智的变化很容易引起例外。在设计时发生这种情况时,您会得到臭名昭著的WSOD(DARN的白屏),它会显示出通常非常隐秘的例外,并告诉您您无法再设计自己的表单了。

您可以通过观察设计器中的表单时对InitializeComponent的更改来了解有关设计师生成代码的方式的更多信息。正确地做到这一点不是初学者的材料,当您加快.NET编程时,您可能会有更多的紧迫知识要学习。设计师在那里使您的生活更轻松,并最大程度地降低了错误的风险。

这些文件中的大多数都是模板,您可以将其包含在新项目中以及文件中包含的内容中。您甚至可以为新项目类型或项目创建自己的模板。 http://msdn.microsoft.com/en-us/magazine/cc188697.aspx

至于修改已经存在的内容,除非您确定要进行的每个项目都需要这些更改,我不建议这样做,只需为其他项目创建一个新模板就更容易/文件类型。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top