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

标签 c# methods initialization

我一直在阅读 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 是表单设计器在您创建/更改表单时自动为您编写的方法。

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

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

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

当然,由于 Form Designer 执行的更改数量很多,不要尝试手动修改此方法是一个非常好的建议,同时,有时,我发现添加代码到 Dispose 方法,目的是销毁在表单生命周期中创建的一些非托管对象。

关于c# - InitializeComponent() 的非常简单的定义;方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12297079/

相关文章:

c# - 在带有 .NET Core 的库 csproj 中使用 Selenium WebDriver

c# - 获取 SQL 数据并将其显示在文本框中?

python - 如何在 Django 模型上定义任何一年的月份范围?

ruby - Sinatra 请求对象

oop - 导入的结构方法不起作用

java - 基元的默认值

c# - 成功部署后Az​​ure Web应用程序未更新

c# - HMACSHA1 SSL 问题

ios - 初始化 UIView 子类属性如何影响 superview 的中心?

c++ - 为什么这个简单的字符串赋值会出现段错误?