【问题标题】:Very Simple definition of InitializeComponent(); MethodInitializeComponent() 的非常简单的定义;方法
【发布时间】:2012-09-06 09:33:43
【问题描述】:

我一直在阅读 Head First C# 书籍并使用了 InitializeComponent();方法多次。

这方面的一个例子是在派对策划练习中,我创建了一个名为 DinnerParty.cs 的类,然后在 Form1.cs 中使用了这个代码

public Form1()         
        {        
            InitializeComponent(); 
            dinnerParty = new DinnerParty() { NumberOfPeople = 5 };
            dinnerParty.SetHealthyOption(checkBox2.Checked);
            dinnerParty.CalculateCostOfDecorations(checkBox1.Checked);
            DisplayDinnerPartyCost();
        }

我的问题是,Initialize Component 方法到底在做什么。我的理解是,我正在定义一个新对象或 DinnerParty 类的实例并设置所有值,到目前为止,我假设 InitializeComponent() 有点说“使用以下内容设置我的字段的值:”

请给我一个基本的,我可以理解定义的东西。我看过以前的帖子和关于这个的答案,一切都太复杂了。我会将最容易理解但仍包含关键信息的回复标记为答案。

【问题讨论】:

  • 如果您查看Form1.Designer.cs,它将包含方法InitializeComponent。基本上它只是初始化表单的内容。
  • 在 Visual Studio 中右键单击 InitializeComponent 并选择 Go to Declaration。哒哒。

标签: c# methods initialization


【解决方案1】:

InitializeComponent 是表单设计器在您创建/更改表单时自动为您编写的方法。

每个 Forms 文件(例如 Form1.cs)都有一个设计器文件(例如 Form1.designer.cs),其中包含 InitializeComponent 方法、通用 Form.Dispose 的覆盖和声明您所有的用户界面对象,如按钮、文本框、标签和表单本身。

InitializeComponent 方法包含的代码使用您(程序员)使用表单设计器的属性网格提供的值创建和初始化拖动到表单表面上的用户界面对象。由于这个事实,在调用 InitializeComponent 之前不要尝试与表单或控件交互
此外,您还可以在此处找到将控件和表单事件链接到您为响应用户操作而编写的特定事件处理程序所需的管道。

Form1.cs 和 Form1.Designer.cs 文件中包含的代码是同一类的一部分,这要归功于 partial classes 的概念,它可以将您的代码的两个或多个文件放在一起,就像一个代码块一样。

当然,由于表单设计器执行了大量的更改,不要尝试手动修改此方法是一个非常好的建议,虽然有时我觉得添加有用Dispose 方法的代码,目的是销毁在表单生命周期中创建的一些非托管对象。

【讨论】:

    【解决方案2】:

    InitializeComponent 是一种用于初始化表单的方法。 它与您的 DinnerParty 课程无关。

    因此,它可能会在您的用户界面上设置按钮、标签、事件处理程序等内容。

    这里有更深入的解释。 What does InitializeComponent() do, and how does it work in WPF?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-14
      • 1970-01-01
      • 1970-01-01
      • 2011-04-16
      • 2011-08-25
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多