BringToFront和不同的消息泵

时间:2015-04-10 20:59:45

标签: multithreading message bringtofront

我会直接进入问题。 基本上我已经建立了一个需要多个消息泵的程序。但是,当一个表单处于焦点并且另一个消息泵上的表单调用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放到前面。

1 个答案:

答案 0 :(得分:0)

如果您在不同的线程上运行Windows,则可能需要使用AttachThreadInput