我有一个我在 VB 2010 中开发的应用程序。它由一系列 Windows 窗体和一个侦听器进程组成,该进程侦听来自 MIDI 设备(键盘等)的输入。此侦听器进程在单独的线程中运行。
使用回调函数和调用方法,我可以使用在 MIDI 设备上播放的音符的值更新其中一个表单上的文本框的值(下面的代码)。
我似乎无法做的是触发一个按钮按下一个按钮,以便一段代码使用另一个回调函数在同一个表单上运行并调用。
我已经用谷歌搜索了,找不到任何工作示例,所以我不确定这是否可能——我希望这是因为这是我项目的最后 1%!
这是更新表单上的文本框的方法,我需要修改什么才能单击同一表单上名为 btn_NextSection 的按钮?
' Because the MIDI listener process runs in a different thread
' it can read the states of controls on the parent form but it
' cannot modify them so we need to identify the parent process
' and update the text box as that one instead
' Set up the callback
Private Delegate Sub SetNextSectionTextCallback(ByVal [text] As String)
' Updates NextSection
Private Sub SetNextSectionText(ByVal [text] As String)
' Function to see if the thread that tries to update the
' text box is the same as the one that started it. If it
' isn't then locate parent process and update as that one
If callerInstance.txt_NextSection.InvokeRequired Then
Dim d As New SetNextSectionTextCallback(AddressOf SetNextSectionText)
callerInstance.Invoke(d, New Object() {[text]})
Else
callerInstance.txt_NextSection.Text = [text]
End If
End Sub
提前致谢 !