Вопрос

Я делаю «тост» в 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), который может получать фокус ввода, не показывая его (его можно сделать очень маленьким или даже вынести за пределы видимой части формы), и убедиться, что этот элемент управления получает фокус при отображении всплывающей формы.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top