单击另一个表单上的特定按钮

时间:2012-04-21 07:06:24

标签: vb.net

考虑我有两种形式,form1和form2

如何使用vb.net中的编码点击,鼠标悬停(任何事件)另一个表单上的特定按钮?

2 个答案:

答案 0 :(得分:3)

我假设Form1启动Form2,因为描述中没有很多信息。

当Form1启动时,有两个按钮:“button1”和“Launch Form 2”(忘记更改button1上的文字,抱歉。:(

form1

单击“启动表单2”时,弹出Form2:

form2

单击Form1上的“button1”,弹出一个来自Form1的消息框,说:

form1Message

单击Form2上的“button1”,弹出一个来自Form1的消息框弹出:

form2Message

以下是代码:

<强> Form1中

Public Class Form1

    Private WithEvents frm2 As New Form2

    Private Sub Form1Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1Button.Click
        RunSomeCode("Called from form 1!")
    End Sub

    Public Sub RunSomeCode(ByVal message As String)
        MessageBox.Show(message)
    End Sub

    Private Sub Form1LaunchForm2Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form1LaunchForm2Button.Click
        frm2.Activate()
        frm2.Show()
    End Sub

    Private Sub frm2_SimulateForm1ButtonClick() Handles frm2.SimulateForm1ButtonClick
        RunSomeCode("Called from form 2!")
    End Sub
End Class

<强>窗体2

Public Class Form2

    Public Event SimulateForm1ButtonClick()

    Private Sub Form2Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Form2Button.Click
        RaiseEvent SimulateForm1ButtonClick()
    End Sub
End Class

工作原理

表单2有一个名为“SimulateForm1ButtonClick”的公共事件。可以从任何代码块随时提出该事件。当我点击表格上的按钮时,我决定提高它。

表单1有一个Form2 WithEvents 的实例。使用WithEvents关键字非常重要,或者Form2中的公共事件不会显示。 :(

表单1有一个子句柄,用于处理Form2单击其按钮时引发的“SimulateForm1ButtonClick”。

现在,这是另一个重要的细节:在Form1上单击button1时执行的代码实际上是一个名为RunSomeCode()的私有子代码。这很重要,因为它使代码可以从Form1的任何其他部分访问,即处理Form2事件的部分。

我希望能帮到你一点点。我不确定你究竟在问什么。 :/

代码:http://darin.hoover.fm/code/dl/FormsSandbox.zip

答案 1 :(得分:2)

如果您尝试触发事件,只需使用Form2.Button1.PerformClick(),假设表单2上的按钮名为“button1”。