InitializeComponent()的非常简单的定义;方法

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了InitializeComponent()的非常简单的定义;方法相关的知识,希望对你有一定的参考价值。

我一直在使用Head First C#书并使用了InitializeComponent();方法好几次。

这方面的一个例子是在Party Planner练习中我创建了一个名为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()有点说“使用以下内容设置我的字段的值:”

我可以请一个BASIC,我可以理解我的定义。我已经看过以前关于这个的帖子和答案,一切都太复杂了。我将标记最容易理解的响应,仍然有关键信息作为答案。

答案

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

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

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

由于partial classes的概念可以将代码的两个或多个文件保存在一起,就像单个代码块一样,Form1.cs和Form1.Designer.cs文件中包含的代码是同一个类的一部分。

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

另一答案

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

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

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

以上是关于InitializeComponent()的非常简单的定义;方法的主要内容,如果未能解决你的问题,请参考以下文章

InitializeComponent() 调用另一个方法

InitializeComponent() 有啥作用,它在 WPF 中如何工作?

InitializeComponent 在两个构造函数中,还是在一个构造函数继承中?

关于initializecomponent 不存在的问题

当前上下文中不存在名称“InitializeComponent”

“InitializeComponent”方法中的代码由设计者生成,不应手动修改。