Как мне создать «нефокусируемую» форму на C #?

Я хочу создать форму на C #, которая не может принимать фокус, т.е. когда я нажимаю кнопку в форме, фокус не крадется из приложения, которое в настоящее время имеет фокус.

См. Пример на экранной клавиатуре Windows. Обратите внимание, что когда вы нажимаете кнопку, фокус не берется с приложения, которое вы используете в данный момент.

Как я могу реализовать это поведение?

Обновление:

Оказывается, это так же просто, как переопределить свойство CreateParams и добавить WS_EX_NOACTIVATE в расширенный стиль окна. Спасибо, что указали мне правильное направление!

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

Если кто-нибудь знает, как решить эту проблему, он будет признателен.

12
задан robinjam 27 October 2010 в 20:54
поделиться