我想编写一个程序来点击另一个按钮,当我单击它时。
例如,我有两个名为 Button1
和 Button2
的按钮,我想做的是在我单击 Button1
后立即点击 Button2
。 这可能吗?
最好的实现取决于您要做什么。 Nadeem_MK 给出了一个有效的方法。您也可以:
使用 PerformClick()
方法触发 Button2_Click
事件:
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_Click(...)
方法相同的参数调用 Button2_Click
方法(如果 例如需要知道发送者):
Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
'do stuff
Button2_Click(sender, e)
End Sub
Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
Button2_Click(Sender, e)
End Sub
这段代码通过编程方式调用按钮点击事件
Button2_Click()
,而这个函数恰好是处理事件的函数。它并没有触发实际的事件。 - DarkTrickProtected 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 类型。
假设按钮1有一个名为的事件
Button1_Click(Sender, eventarg)
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
;
。 - Nadeem_MK
Me.Button2.PerformClick()
可以适用于任何附加到Button2.Click
的事件处理程序(例如,另一个窗体可能使用AddHandler
附加了此事件),而Button2_Click(sender, e)
则调用特定的处理程序。 - Olivier Jacot-Descombes