Раздражающая граница вокруг кнопки при нажатии на вкладку и нажатии кнопки - PullRequest
0 голосов
/ 02 июня 2019

Я получаю эту очень раздражающую границу, когда нажимаю tab и нажимаю кнопку

Я пробовал

 foreach (Control x in this.Controls)
 {
   if (x is Button)
            {
                Button newbut = (Button)x;
                newbut.FlatStyle = FlatStyle.Flat;
                newbut.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255);
                newbut.FlatAppearance.BorderSize = 0;
                newbut.TabStop = false;
            }
        }

И я также пытался добавить событие в Keydown, а непозволяет нажать клавишу табуляции, но пока ничего не получалось.

enter image description here

это пример границы, которая продолжает появляться

Ответы [ 2 ]

0 голосов
/ 02 июня 2019

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

    private void btnDoSomething_Click(object sender, EventArgs e)
    {
        myDummyControl.Focus();

        MessageBox.Show("This still executes even though we have lost focus");

        // If you are decoupling your code from the UI, this becomes second nature quickly as it becomes part of your control handling.
    }

Также вы можете не дать элементу управления получить фокусировку Tab, установив его свойство TabStop tp false, сделайте это в кнопке Paint события.

Если у вас много кнопок, вы можете просто указать им один и тот же обработчик событий (On_Paint).

    private void On_Paint(object sender, PaintEventArgs e)
    {
        Button thisButton = sender as Button;
        thisButton.TabStop = false;
    }
0 голосов
/ 02 июня 2019

Исправлено путем создания собственного класса кнопок и редактирования файла designer.cs

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...