当前位置: 首页 > 编程语言 > C#

点击菜单条时禁止“询问”双击未聚焦的窗口分享

时间:2023-04-10 17:12:53 C#

在窗口未聚焦时“双击”窗口以激活菜单条中的项目?目前,如果窗口未获得焦点,我首先必须单击窗口以使其成为焦点,然后再次单击菜单项,即使我的鼠标从一开始就悬停在菜单项上。提前致谢!尝试将此函数放在Form类中:protectedoverridevoidWndProc(refMessagem){intWM_PARENTNOTIFY=0x0210;if(!this.Focused&&m.Msg==WM_PARENTNOTIFY){//当菜单/控件被点击时,让这个表单自动获取焦点this.Activate();}base.WndProc(refm);@Detmar的回答中的方法会在窗口被销毁时聚焦在窗口上(参见https://msdn.microsoft.com/en-us/library/windows/desktop/hh454920(v=vs.85).aspx)。如果您的应用程序中有多个窗口并且您要退出,这可能会导致问题。这里有一个在处理windows时不会触发的:以上是C#学习教程:点击menustrip时,disable"require"todouble-clicktheunfocusedwindow共享所有内容,如果对大家有用需要想了解更多希望大家多多关注C#学习教程——protectedoverridevoidWndProc(refMessagem){constintWM_PARENTNOTIFY=0x0210;如果(!this.Focused&&m.Msg==WM_PARENTNOTIFY){constintWM_CREATE=0x0001;constintWM_DESTROY=0x0002;constintWM_LBUTTONDOWN=0x0201;constintWM_MBUTTONDOWN=0x0207;constintWM_RBUTTONDOWN=0x0204;constintWM_XBUTTONDOWN=0x020B;constintWM_POINTERDOWN=0x0246;int类型=(int)(0xFFFF&(long)m.WParam);switch(type){caseWM_LBUTTONDOWN:caseWM_MBUTTONDOWN:caseWM_RBUTTONDOWN:caseWM_XBUTTONDOWN:caseWM_POINTERDOWN://让这个表单在菜单/控件被点击时自动获取焦点this.Activate();休息;caseWM_DESTM_REATE:case//什么都不做break;}}base.WndProc(refm);}本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处: