考虑我有两种形式,form1 和 form2
如何使用 vb.net 中的编码单击、鼠标悬停(任何事件)另一个表单上的特定按钮?
我假设 Form1 启动 Form2,因为描述中没有很多信息。
当 Form1 启动时,有两个按钮:“button1”和“Launch Form 2”(忘记更改 button1 上的文本,抱歉。:(
点击“Launch Form 2”,弹出Form2:
单击 Form1 上的“button1”,会弹出一个来自 Form1 的消息框,内容为:
单击 Form2 上的“button1”,会弹出一个来自 Form1 的消息框,内容为:
这是代码:
表格1
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”的公共事件。可以随时从任何代码块引发该事件。我只是决定在单击表单上的按钮时提出它。
Form 1 有一个 Form2 WithEvents的实例。使用 WithEvents 关键字非常重要,否则 Form2 中的公共事件将不会显示。:(
Form 1 有一个 sub 处理 Form2 单击其按钮时引发的“SimulateForm1ButtonClick”。
现在,这里有另一个重要的细节:当在 Form1 上单击 button1 时执行的代码实际上是在一个名为 RunSomeCode() 的私有子中。这很重要,因为它使代码可以从 Form1 的任何其他部分访问,即处理 Form2 事件的部分。
我希望这对你有所帮助。我不确定你在问什么。:/
如果您试图触发事件,只需Form2.Button1.PerformClick()
假设表单 2 上的按钮称为“button1”。