Intereting Posts
Невозможно изменить целевую платформу на «любой процессор», Компиляция xaml с использованием Roslyn Поиск элементов управления внутри вложенных мастер-страниц Unicode to Mazovia Кодирование избыточного символа Создание RSS-канала в ASP.NET 3.5 как использовать DesignInstance с Caliburn.Micro Что такое деревья выражений, как вы их используете, и почему вы их используете? Существуют ли какие-либо коллекции в .NET, которые предотвращают нулевые записи? C # HashSet Generic позволяет дублировать Невозможно найти конструктор по умолчанию для типа System.Json.JsonObject Как проверить символы, которые пользователь вводит в текстовое поле WinForms? Как получить StatusCode из HttpRequestException? Невозможно найти способ добавления заполнителя для MVC 5 DropDownListFor Если OU содержит 3000 пользователей, как использовать DirectorySearcher, чтобы найти все из них? Использование именованного параметра только при передаче целого числа

C # WinForms – пользовательская кнопка нежелательной границы, когда форма не выбрана

У меня возникла проблема с пользовательской кнопкой, которую я создал в c # win form. Кнопка отображается нормально, когда форма выбрана, но как только я нажму на кнопку, на кнопке появится рамка. Хорошим примером того, когда это происходит, является то, что при щелчке рабочего стола, но форма все еще максимизирована, чтобы вы могли видеть ее содержимое. Изображение проблемы можно увидеть ниже:

Проблема с границей кнопки

Это не происходит на всех кнопках, только когда кнопка была нажата ранее (отображается только по одной кнопке за раз). Это заставило меня поверить, что это связано с сигналами фокуса кнопок, но они установлены на false. Граница установлена ​​в 0, и у меня также установлено значение tabstop равное false.

Какие-либо предложения?

Когда вы имеете дело с пользовательской кнопкой, вы должны установить:

button.TabStop = false; button.FlatStyle = FlatStyle.Flat; button.FlatAppearance.BorderSize = 0; 

Затем, поскольку ButtonBase не поддерживает цвет Color.Transparent на Color.Transparent , вы можете решить проблему, установив цвет Argb:

 button.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); //transparent 

Ответ fuex может устранить границу в теории, но есть ошибка, что иногда кнопка будет по-прежнему иметь фокус-кий после того, как вы измените статус активации кнопки (я запускаю эту ошибку в .Net 4.0, и я не знаю, что ошибка исправлена ​​или нет в более поздней версии). Чтобы исправить эту ошибку, вы должны отключить propuke

  protected override bool ShowFocusCues { get { //return base.ShowFocusCues; return false; } }