以编程方式单击按钮

Mar*_*tes 4 vb.net button winforms

我想编写一个代码button,button当我点击它时,以编程方式点击另一个.

例如,我有两个按钮命名为Button1Button2,我想要做的是,我点击后Button1,应该点击Button2.这可能吗?

Chr*_*ris 14

最佳实施取决于您尝试做的事情.Nadeem_MK为您提供有效的一个.知道你也可以:

  1. Button2_Click使用PerformClick()方法提升事件:

    Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        'do stuff
        Me.Button2.PerformClick()
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将相同的处理程序附加到许多按钮:

    Private Sub Button1_Click(sender As Object, e As System.EventArgs) _
        Handles Button1.Click, Button2.Click
        'do stuff
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)
  3. Button2_Click使用与方法相同的参数调用Button1_Click(...)方法(例如,如果您需要知道哪个是发送方):

    Private Sub Button1_Click(sender As Object, e As System.EventArgs) Handles Button1.Click
        'do stuff
         Button2_Click(sender, e)
    End Sub
    
    Run Code Online (Sandbox Code Playgroud)

  • 我喜欢这个 - PerformClick 方法非常优雅。谢谢! (2认同)
  • 请注意,“Me.Button2.PerformClick()”适用于附加到“Button2.Click”的任意数量的事件处理程序(例如,另一个表单可能已使用“AddHandler”附加此事件),其中“Button2_Click(sender, e)”调用特定的处理程序。 (2认同)

sk2*_*185 11

Protected Sub Button1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Button1.Click
        Button2_Click(Sender, e)
End Sub
Run Code Online (Sandbox Code Playgroud)

此编码调用按钮以编程方式单击事件


Nad*_*_MK 5

这种情况的最佳实践是创建一个包含所有逻辑的方法,并在两个事件中调用该方法,而不是从另一个事件调用事件;

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
Run Code Online (Sandbox Code Playgroud)

如果您需要EventArgs(e)的属性,您可以轻松地通过方法中的参数传递它,如果发件人属于不同类型,则可以避免错误.但是在你的情况下这不会是一个问题,因为两个发件人都是Button类型.