Почему мой текст продолжает выделяться?
-
20-09-2019 - |
Вопрос
Я делаю «тост» в vb.net, и всякий раз, когда он появляется, весь текст в текстовом поле ВСЕГДА выделяется... как я могу удалить выделение программно?
Спасибо!
Вот код, который, кажется, автоматически подсвечивается:
Dim i As Integer
toast.HeaderL.Text = headertext
toast.BodyL.Text = contenttext
toast.Show()
toast.Opacity = 0
i = 0
While i < 100
toast.SetDesktopLocation(My.Computer.Screen.WorkingArea.Right - toast.Width, My.Computer.Screen.WorkingArea.Bottom - ((toast.Height / 100) * i))
toast.Opacity += 0.01
wait(7)
i += 1
End While
wait(4000)
toast.Opacity = 1
i = 0
While i < 100
toast.SetDesktopLocation(toast.Location.X, toast.Location.Y + toast.Height / 100)
toast.Opacity -= 0.01
wait(7)
i += 1
End While
toast.Close()
Всегда текст внутри BodyL (который является текстовым полем) подсвечивается. В некоторых моментах я пытался добавить tooast.Focus(), но это не сработало.
тост — это имя формы.
Решение
Это скорее предположение, но вы можете попробовать добавить следующую строку после присвоения текста BodyL
:
toast.BodyL.Select(toast.BodyL.Text.Length, 0)
Другая идея — добавить в форму всплывающего уведомления какой-либо другой элемент управления (например, Panel
), который может получать фокус ввода, не показывая его (его можно сделать очень маленьким или даже вынести за пределы видимой части формы), и убедиться, что этот элемент управления получает фокус при отображении всплывающей формы.