在 C# WinForms 中,通常通过重载(Overload)构造函数来传递参数或执行自定义初始化逻辑。必须确保在所有自定义构造函数中调用 `InitializeComponent()`,通常通过链式调用无参构造函数实现,以保证界面控件正确初始化 。
public partial class Form1 : Form
{
// 1. 默认无参构造函数(设计器生成,必须保留)
public Form1()
{
InitializeComponent();
}
// 2. 带参数的构造函数
// 使用 : this() 链式调用无参构造函数,确保先执行 InitializeComponent()
public Form1(string title) : this()
{
this.Text = title;
}
// 3. 多参数构造函数
public Form1(string title, int width) : this(title)
{
this.Width = width;
}
}
调用示例:
// 实例化时传入参数
Form1 form = new Form1("自定义标题", 800);
form.Show();
注意:
– 严禁在 `InitializeComponent()` 之前访问窗体上的控件(如 `textBox1.Text = "…"`),否则会抛出空引用异常,因为此时控件尚未创建 。
– 如果需要在界面初始化后执行逻辑,建议重写 `OnLoad` 方法或在构造函数末尾添加代码,而不是修改 `InitializeComponent` 内部实现 。




