Я устанавливаю свойства управления Button Winforms, которые будут отображаться в виде гиперссылки на веб-странице. Я отформатировал все отлично, за исключением границы объекта FlatAppearance. У меня есть код, чтобы действовать как псевдо-CSS (FormBackColor это строковая константа.):Удалить границу с фокусом с помощью кнопки управления
b.FlatStyle = FlatStyle.Flat
b.BackColor = ColorTranslator.FromHtml(FormBackColor)
b.ForeColor = Color.Blue
b.Font = New Font(b.Font.FontFamily, b.Font.Size, FontStyle.Underline)
b.Cursor = Cursors.Hand
Dim fa As FlatButtonAppearance = b.FlatAppearance
fa.BorderSize = 0
fa.MouseOverBackColor = b.BackColor
fa.MouseDownBackColor = b.BackColor
AddHandler b.MouseEnter, AddressOf ButtonMouseOver
AddHandler b.MouseLeave, AddressOf ButtonMouseOut
Вот мышь из/через функции в качестве ссылки на то, что происходит:
Public Shared Sub ButtonMouseOver(ByVal sender As Object, ByVal e As EventArgs)
Dim b As Button = DirectCast(sender, Button)
Dim fa As FlatButtonAppearance = b.FlatAppearance
fa.BorderSize = 1
End Sub
Public Shared Sub ButtonMouseOut(ByVal sender As Object, ByVal e As EventArgs)
Dim b As Button = DirectCast(sender, Button)
Dim fa As FlatButtonAppearance = b.FlatAppearance
fa.BorderSize = 0
End Sub
код удаляет границу с плоского управления Button, кроме MouseOver, где я добавляю границу 1 пиксель. В MouseLeave я удаляю границу. Это должно показать некоторую визуальную обратную связь. Это отлично работает, когда кнопка не имеет фокуса. Однако, если я нажму на кнопку, нажав кнопку фокуса, мышь снова и снова показывает, что вокруг кнопки больше 1 пиксельной границы. Я представляю себе, что он сочетает явную границу с 1 пикселем на кнопке с традиционной кнопкой «Winform Button», поэтому добавьте границу границы вокруг кнопки.
Как отключить/удалить кнопку «Winform» с фокусом, так что добавьте границу границы? Или, если я просто сделаю чек в ButtonMouseOver, чтобы проверить, имеет ли элемент управления фокус, являясь условием добавления границы и просто нужно сделать с ним? Я бы предпочел, чтобы удалить автоматическую границу из фокуса по какой причине :)
У меня нет ответа для вас, но есть причина, что вы пытаетесь взломать кнопку в делать то же самое, что и LinkLabel? –