考虑我有两种形式,form1和form2
如何使用vb.net中的编码点击,鼠标悬停(任何事件)另一个表单上的特定按钮?
答案 0 :(得分:3)
我假设Form1启动Form2,因为描述中没有很多信息。
当Form1启动时,有两个按钮:“button1”和“Launch Form 2”(忘记更改button1上的文字,抱歉。:(
单击“启动表单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 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事件的部分。
我希望能帮到你一点点。我不确定你究竟在问什么。 :/
答案 1 :(得分:2)
如果您尝试触发事件,只需使用Form2.Button1.PerformClick()
,假设表单2上的按钮名为“button1”。