假设我有两个表单,form1和form2
如何使用vb.net编码单击另一个窗体上的特定按钮,并将鼠标悬停在(任何事件)上?
发布于 2012-04-21 15:48:08
我假设Form1会启动Form2,因为在描述中没有太多的信息。
当Form1启动时,有两个按钮:" button1“和"Launch Form 2”(忘记在button1上更改文本,抱歉。:(

点击"Launch Form 2",弹出Form2:

点击Form1上的button1,弹出源自Form1的消息框,提示:

点击Form2上的"button1“,弹出同样来自Form1的消息框,提示如下:

代码如下:
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 ClassForm2
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如何工作
Form 2有一个名为"SimulateForm1ButtonClick“的公共事件。该事件可以在任何时候从任何代码块中引发。我只是决定在单击表单上的按钮时引发它。
窗体%1具有Form2 WithEvents的实例。使用WithEvents关键字非常重要,否则Form2中的公共事件将不会出现。:(
Form 1有一个sub,它处理当Form2单击其按钮时引发的"SimulateForm1ButtonClick“。
现在,这里有另一个重要的细节:在Form1上单击button1时执行的代码实际上在一个名为RunSomeCode()的私有子中。这一点很重要,因为它使代码可以从Form1的任何其他部分访问,即处理form2的事件的部分。
我希望这能帮到你一点忙。我不太清楚你到底在问什么。:/
代码:http://darin.hoover.fm/code/dl/FormsSandbox.zip
发布于 2012-04-24 05:38:09
如果你想触发这个事件,只要使用Form2.Button1.PerformClick()就可以了,假设Form2上的按钮叫做'button1‘。
https://stackoverflow.com/questions/10257023
复制相似问题