Vb.net 以编程方式单击按钮
我想编写一个Vb.net 以编程方式单击按钮,vb.net,winforms,button,Vb.net,Winforms,Button,我想编写一个按钮,当我单击该按钮时,它可以通过编程方式单击另一个按钮 例如,我有两个按钮名为Button1和Button2,我想做的是,在我单击Button1之后,它应该立即单击Button2。这可能吗 假设按钮1有一个名为 Button1_Click(Sender, eventarg) 如果你想在Button2中调用它,那么直接调用这个函数 Button1_Click(Nothing, Nothing) 此代码调用按钮在c中以编程方式单击事件;这正在工作:D protect void bu
按钮
,当我单击该按钮时,它可以通过编程方式单击另一个按钮
例如,我有两个按钮名为
Button1
和Button2
,我想做的是,在我单击Button1
之后,它应该立即单击Button2
。这可能吗 假设按钮1有一个名为
Button1_Click(Sender, eventarg)
如果你想在Button2中调用它,那么直接调用这个函数
Button1_Click(Nothing, Nothing)
此代码调用按钮在c中以编程方式单击事件;这正在工作:D
protect void button1_Click(object sender, EventArgs e){
button2_Click(button2, null);
}
protect void button2_Click(object sender, EventeArgs e){
//some codes here
}
对于vb.net
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Button2_Click(Sender, e)
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button2.Click
//some codes here
End Sub
这种情况下的最佳实践是创建一个包含所有逻辑的方法,并在两个事件中调用该方法,而不是从另一个事件调用一个事件
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
LogicMethod()
End Sub
Protected Sub Button2_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
LogicMethod()
End Sub
Private Sub LogicMethod()
// All your logic goes here
End Sub
如果您需要EventArgs(e)的属性,您可以轻松地通过方法中的参数传递它,这将避免在发送者属于不同类型时出错。但在您的情况下,这不会是一个问题,因为两个发送者都是Button类型。最佳实现取决于您正试图做什么。Nadeem_MK给你一个有效的。我知道你也可以:
PerformClick()
方法提升按钮2\u单击事件:
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
'do stuff
Me.Button2.PerformClick()
End Sub
Private Sub Button1_Click(sender As Object, e As System.EventArgs) _
Handles Button1.Click, Button2.Click
'do stuff
End Sub
Button1\u-Click(…)
方法相同的参数调用Button2\u-Click
方法(如果您需要知道哪个是发件人,例如):
button2\u单击(button2,null)代码>我喜欢这个-PerformClick方法非常优雅。谢谢请注意,Me.Button2.PerformClick()
适用于附加到Button2.Click的任何数量的事件处理程序(例如,另一个表单可能已将此事件附加到AddHandler
),其中asButton2\u Click(sender,e)
调用特定的处理程序。如果不重复使用,请填充堆栈?因为它从未完成第一次单击?我从BackgroundWorker调用此事件,并且必须将事件从Private更改为Friend,然后调用它,但它可以工作。
Private Sub Button1_Click(sender As Object, e As System.EventArgs) _
Handles Button1.Click, Button2.Click
'do stuff
End Sub
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
'do stuff
Button2_Click(sender, e)
End Sub