Показать сообщение отдельно

  #12  
Старый 04.05.2018, 22:44
Mizuwokiru
Постоянный
Регистрация: 07.04.2015
Сообщений: 960
С нами: 5842272

Репутация: 1039


По умолчанию

Цитата:
Сообщение от DaVilka  

А еще, если нажать кнопку, и форма потеряет фокус, то во круг кнопки появляется обводка даже если BorderSize = 0
Как вариант, создать класс-наследник от Button и в конструкторе или в OnPaint`е вызвать:

SetStyle(ControlStyles.Selectable, false);

В этом случае кнопке нельзя будет присвоить фокус, т.е. табом теперь ее не выбирает.

UPD: Если же фокус нужен, то есть еще вариант:

Создаем класс-наследник от Button и переопределяем свойство ShowFocusCues на возвращение false:

protected override bool ShowFocusCues => false;

А в неактивном окне применяется цвет рамки, поэтому задаем цвет рамки прозрачный. Через панель свойств это нельзя сделать почему-то, поэтому идем в код и задаем цвет рамки вручную:

this.button1.FlatAppearance.BorderColor = System.Drawing.Color.FromArgb(0, 255, 255, 255);

В этом случае ShowFocusCues запретит показывать рамку вокруг текста при фокусе, а прозрачный цвет поможет визуально избавиться от рамки при потере фокуса окна (хотя сама рамка остается).

Можно еще попробовать поколдовать с GotFocus кнопки и Deactivate окна.
 
Ответить с цитированием