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 и пытаюсь вывести Form2 на передний план с помощью Button1.
1 ответ
Возможно, вы захотите использовать AttachThreadInput, если вы используете Windows в разных потоках.