我试着理解为什么我不能在构造函数的最后一行中邀请事件? 事件“formload”是否在施工结束后发生?
public Form1()
{
InitializeComponent();
button1.Text = "a";
button1.PerformClick();
}
private void button1_Click(object sender, EventArgs e)
{
button1.Text = "b";
}
答案 0 :(得分:2)
这种行为是因为如果控件是在windows消息上构建的,那么只有在表单实例存在并且有句柄的情况下才能生成控件,而不是在构建它时。
必须打开表单以确保控件正常工作。
在构造函数上引发事件并不是最佳做法
答案 1 :(得分:0)
测试。不依赖于创建的控件。
public Form1()
{
InitializeComponent();
button1.Text = "A";
button1_Click_helper();
}
private void button1_Click(object sender, EventArgs e)
{
button1_Click_helper();
}
private void button1_Click_helper()
{
button1.Text = "B";
}