C# button.PerformClick();不在表单加载中工作
我正在调用一个按钮单击,其形式如下所示:C# button.PerformClick();不在表单加载中工作,c#,winforms,button,C#,Winforms,Button,我正在调用一个按钮单击,其形式如下所示: public void Form1_Load(object s, EventArgs e) { button.PerformClick(); } 但是在加载按钮时,按钮没有被单击,我做错了什么?您可以在另一个函数中的click中编写您想要执行的任何操作,并从click处理程序中调用该操作,或者通过如下编程方式调用- public void Form1_Load(object s, EventArgs e) { //but
public void Form1_Load(object s, EventArgs e)
{
button.PerformClick();
}
但是在加载按钮时,按钮没有被单击,我做错了什么?您可以在另一个函数中的click中编写您想要执行的任何操作,并从click处理程序中调用该操作,或者通过如下编程方式调用-
public void Form1_Load(object s, EventArgs e)
{
//button.PerformClick();
PerformClickAction();
}
void button_click(object sender,EventArgs e)
{
PerformClickAction();
}
void PerformClickAction()
{
// Write what you need to do on click
}
要在表单加载时单击按钮,需要在加载表单后触发事件,请尝试以下操作
public Form1()
{
InitializeComponent();
//Event fired
this.Load += new System.EventHandler(this.button1_Click);
}
//Event Handler
private void button1_Click(object sender, EventArgs e)
{
//do something
}
这对我很有用:
public void Form1_Load(object s, EventArgs e){
button.PerformClick();
}
看起来您没有将Form1\u Load注册为表单的Load
事件的事件处理程序。试试这个:
public Form1(){
InitializeComponent();
Load += Form1_Load;//Register the event handler so that it will work for you.
}
PerformClick()可能由于验证而产生副作用,这可能会阻止事件运行。最好不要这样做,直接调用Click事件处理程序即可。或者它确实可以工作,但你只是看不到它,因为窗口还不可见。你的代码片段糟透了。
按钮\u单击(null,null)代码>可以工作。调用处理程序不是更简单吗:button\u click(button,neweventargs())代码>?如果您想以编程方式和作为处理程序来执行,最好将其分开。。。当从其他方法调用button_click时,它听起来并不是一个很有说服力和可读性的名称……只是针对那些选择做@DonBoitnott在评论中提到的事情的未来访问者。对于不使用派生类的任何事件或处理程序,始终建议使用EventArgs.Empty
。这会阻止创建新对象,并且只使用一个瞬间来处理所有事情。示例:按钮\u单击(按钮,EventArgs.Empty)代码>