如何在C#中创建“无法聚焦”的表单?我想在C#中创建一个不能接受焦点的表单,即当我单击表单上的一个按钮时,焦点不会从当前具有焦点的应用程序中窃取。有关此示例,请参阅Windows屏幕键盘。请注意,单击该按钮时,不会从您当前使用的应用程序中获取焦点。我怎样才能实现这种行为?更新:事实证明,它就像覆盖CreateParams属性并将WS_EX_NOACTIVATE添加到扩展窗口样式一样简单。感谢您为我指明正确的方向!不幸的是,这有一个不良的副作用,它会干扰表单的移动,即您仍然可以在屏幕上拖放表单,但拖动时窗口的边框不会显示,因此很难精确定位。如果有人知道如何解决此问题,将不胜感激。要通过鼠标禁用激活:classNonFocusableForm:Form{protectedoverridevoidDefWndProc(refMessagem){constintWM_MOUSEACTIVATE=0x21;constintMA_NOACTIVATE=0x0003;switch(m.Msg){caseWM_MOUSEACTIVATE:m.Result=(IntPtr)MA_NOACTIVATE;返回;}base.DefWndProc(refm);}}在不激活的情况下显示表单(在无边界表单的情况下,唯一对我有用的方法):[DllImport("user32.dll")]publicstaticexternboolShowWindow(IntPtrhandle,intflags);NativeMethods.ShowWindow(form.Handle,8);执行此操作的标准方法(似乎不适用于所有表单样式):protectedoverrideboolShowWithoutActivation{get{returntrue;如果有其他方法可以激活表单,它们可以以类似的方式被抑制。以上就是C#学习教程:如何在C#中创建“无法聚焦”的窗体?如果所有分享的内容对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
