Удалить границу кнопки на вкладке c # winforms - PullRequest
4 голосов
/ 01 апреля 2012

У меня на форме есть кнопка, к которой применен плоский стиль и используется фоновое изображение. Я удалил все границы с кнопки, но когда я нажимаю на кнопку из другого элемента управления, вокруг кнопки появляется черная рамка.

Это можно увидеть на изображении ниже.Слева - кнопка с черной рамкой, справа - другая кнопка, но она показывает, как должна выглядеть кнопка отмены.

Buttons

Ответы [ 5 ]

3 голосов
/ 01 апреля 2012

Я не получаю эту границу, если установить BoderSize в 0 в разделе FlatAppearance.


Дальнейшие исследования показывают, что эта граница появляется только тогда, когда кнопка является кнопкой по умолчанию.Вы можете создать свою собственную кнопку, которая никогда не будет отображать эту границу, как эта

public class NoNotifyButton: System.Windows.Forms.Button
{
    public override void NotifyDefault(bool value)
    {
    }
}

Примечание: NotifyDefault остается намеренно пустым.

2 голосов
/ 01 апреля 2012

Вы должны создать новый класс кнопок, используя IButtonControl и изменить NotifyDefault на false:

base.NotifyDefault(false);
0 голосов
/ 02 февраля 2016

Мне удалось обойти это, установив для свойства кнопки TabStop значение False, а затем используя этот код для события нажатия кнопки

private void sendBackTab()
        {
            System.Windows.Forms.SendKeys.SendWait("+{TAB}");
        }
0 голосов
/ 21 декабря 2015

Вам не нужно создавать производный класс.Вы можете установить ForeColor таким же, как родительский элемент управления BackColor.Следующим образом:

btn1.ForeColor = btn1.Parent.BackColor;
0 голосов
/ 10 июня 2015

Вы можете сделать это, установив для свойства кнопки «ForeColor» прозрачный

...