我希望在C#中创建一个不能接受焦点的窗体,即当我单击窗体上的按钮时,焦点不会从当前具有焦点的应用程序中窃取。
请参阅Windows屏幕键盘的示例。请注意,当您单击按钮时,焦点不会从您当前使用的应用程序中获取。
如何实现此行为?
更新:
原来它是一样简单的覆盖CreateParams
属性和添加WS_EX_NOACTIVATE
到扩展窗口样式.谢谢你给我指出了正确的方向!
不幸的是,这有一个不受欢迎的副作用,它会扰乱窗体的移动,即您仍然可以在屏幕上拖放窗体,但拖动时窗口的边框不会显示,因此很难精确定位它。
如果有人知道如何解决这个问题,将不胜感激。
2条答案
按热度按时间lb3vh1jj1#
要禁用鼠标激活,请执行以下操作:
要在不激活的情况下显示表单(在无边界表单的情况下,这是唯一一种对我有效的方法):
标准的方法来做到这一点(似乎它不适用于所有的表单样式):
如果有其他激活表单的方法,则可以以类似的方式抑制它们。
nhn9ugyo2#
这是我使用的“NoFocusForm”: