2015-03-25 2 views
0

Я создал свою собственную кнопку сворачивания в Windows Forms и обрабатывать Click событие, как показано в следующем коде:Как кнопка отмены выбора в Windows Forms

this.WindowState = FormWindowState.Minimized; 
this.ShowInTaskbar = false; 
this.notifyIcon.Visible = true; 
this.notifyIcon.ShowBalloonTip(1000); 

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

enter image description here

есть ли способ, чтобы избежать такого поведения?

Заранее спасибо.

+1

Ваша кнопка получает фокус, конечно. Вы намного лучше * не * делаете это кнопкой, а просто образ, который вы рисуете в OnPaint(). Тогда событие MouseUp формы - это все, что вам нужно, проверьте e.Location. Некоторые примеры кода [здесь] (http://stackoverflow.com/a/23139022/17034). –

ответ

0

Вот код, чтобы избежать этого, попробуйте:

yourButton.TabStop = false; 
yourButton.FlatStyle = FlatStyle.Flat; 
yourButton.FlatAppearance.BorderColor = Color.FromArgb(0, 255, 255, 255); //Transparent 

И если не работает, попробуйте это тоже: переопределение ShowFocusCues свойство

protected override bool ShowFocusCues 
{ 
    get 
    { 
     return false; 
    } 
} 
+0

Я не могу сделать 'BorderColor' прозрачным (по крайней мере от дизайнера) – FrozenHeart

+0

обновил мой ответ! попробуйте. –

+0

К сожалению, он не работает – FrozenHeart

0

Некоторые управления, как правило, имеет фокус.

Вы можете решить, какой она должна быть и добавить thatcontrol.Focus(); Вам нужно добавить, что перед вызовом минимизирующей:

label1.Focus(); 
this.WindowState = FormWindowState.Minimized; 

Но имо, для лучшего пользовательского опыта Focus должен быть видимым контролем, так что пользователь знает, где он. (Я ненавижу те веб-страницы, где я хочу начать печатать, но я нигде не ..)

Смежные вопросы