【问题标题】:Difference between form1.cs, form1.designer.cs and program.cs in c#c#中form1.cs、form1.designer.cs和program.cs的区别
【发布时间】:2014-01-08 17:56:39
【问题描述】:

我对 c# 真的很陌生,如果这是一个简单的问题,我很抱歉,但它会帮助我更好地理解我的作业。

我必须在 Visual Studio 中制作某种 c# 应用程序,我的主要问题是: 哪部分代码位于哪个文件中:form1.cs、form1.designer.cs 还是 program.cs?

我认为 Visual Studio 在 Form1.designer.cs 中生成代码,除非必要,否则我不应该更改它,在 form1.cs 中是通过单击某个表单元素激活的功能,在 program.cs 中是应用程序的主要部分。

我说得对吗,对于这些文件,我在开始时还有什么需要了解的吗?

非常感谢您的回答。

【问题讨论】:

标签: c# winforms visual-studio-2012


【解决方案1】:

是的,您基本上是正确的,但是:

  1. form1.cs 是 windows 窗体的代码隐藏文件。它是windows的类文件 编写必要的方法、函数以及事件驱动的方法和代码的形式。

  2. form1.designer.cs 是初始化表单元素的设计器文件。如果在表单窗口中拖放任何元素,则该元素将在此类中自动初始化。

  3. program.cs 是应用程序的主要部分。这将在应用程序运行时首先执行。

【讨论】:

  • 我正在使用旧代码,其中 form1.designer.cs 不存在,它将所有内容都放入 form1.cs。如果我在其上放置一个新按钮,则会更新 form1.cs 中的 InitializeComponent()。什么设置会让它有这种行为?
  • @BradB。实际上,如果您使用 C# 2.0 及更高版本,我想您可以自己创建文件 form1.designer.cs*.deigner.cs 文件包含一个带有提到的方法InitializeComponent() 以及视觉属性的定义和初始化的部分类。理论上,当您移动这些东西时,它应该找到它,当它与您的逻辑属于一个类时(但分为两个部分类)。不幸的是我无法测试它,因为我没有 VS。
【解决方案2】:

嗯,

  • form1.cs:这是你写的代码、事件和自定义代码。

  • form1.designer.cs: windows 窗体上的组件代码。你需要它,你不能删除。不建议初学者手动更改。

  • program.cs: 在 C# 中,对于程序启动,它会查找包含名为 main(string[] args) 的静态方法的静态类,并开始在此范围内执行程序。在这里,在 Windows 窗体应用程序中,代码创建一个窗体并将其打开给用户开始使用该应用程序。

每次创建表单时,您都会看到有.cs 文件和.designer.cs,每次从工具箱中拖动控件或更改属性窗口上的某些属性时,.designer.cs 文件都会更改。

【讨论】:

    【解决方案3】:

    program.cs - 是静态类,它只包含一个静态方法,需要启动您的应用程序。 From MSDN:

    每个 C# 应用程序都必须包含一个 Main 方法指定 程序执行开始的地方。

    如果您的项目只是一个库,那么您的代码中不需要Main() - 方法,并且不会生成program.cs

    关于form1.csform1.designer.cs - 这是一类form1,它的定义被分成两个代码文件。 From MSDN about partial class:

    可以拆分类或结构的定义, 两个或多个源文件的接口或方法。每个源文件 包含类型或方法定义的一部分,所有部分都是 在编译应用程序时合并。

    所以这两个文件有一个相同类的代码。
    您可以在form1.cs 中编写控件的初始化代码。但是需要记住form1.designer.cs文件会在你通过VisualStudio的设计器进行更改时生成

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-03-20
      • 2019-05-02
      • 2015-07-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多