我将直接进入这个问题。基本上我已经建立了一个需要多个消息泵的程序。但是,当一个表单处于焦点位置并且位于不同消息泵上的表单调用 BringToFront 时,它将不起作用,因为它位于不同的消息泵上。有没有什么办法解决这一问题?
该死的,我简直不敢相信我忘了补充……对不起,你们会的!语言:VB.NET 代码示例:
Public Class Form1
Private Shared Test As New Form2
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
Test.Invoke(Sub() Test.BringToFront())
End Sub
Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
Dim T As New Threading.Thread(Sub()
Application.Run(Test)
End Sub)
T.Start()
End Sub
End Class
我使用 Invoke() 因为表单是在不同的线程上创建的。
首先我按下 Button2,然后再次单击 Form1 并尝试使用 Button1 将 Form2 置于前面。