怎么抢模式对话框的焦点

robot_zyt 2014-11-12 09:27:47
程序有个定时锁屏功能,锁屏对话框是全屏置顶的,锁屏后程序的很多线程可能会showdialog模式对话框出来,这样此时锁屏对话框就没法获取焦点去输入密码了,焦点就在后面的模式对话框上,那么就一直没法进入程序了。
想请教一下各位大牛,能不能让锁屏对话框永远保有输入焦点,即使后面有模式对话框出来 ? 急等各位大牛解答,多谢了!
...全文
232 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
robot_zyt 2014-11-13
  • 打赏
  • 举报
回复
定时器还是无法抢占模态对话框的焦点;钩子到时可以考虑,只是用户体验差点,也只能这样了。
引用 2 楼 findcaiyzh 的回复:
参考: Keep window on top and steal focus in WinForms http://stackoverflow.com/questions/278237/keep-window-on-top-and-steal-focus-in-winforms 第一个回答是说用钩子什么的。 后面的应该都是用定时器。
robot_zyt 2014-11-13
  • 打赏
  • 举报
回复
自动弹出的对话框应该是主线程根据条件产生的; 能把锁屏放在工作线程吗?工作线程好像一般不能显示模态对话框,即使能用,能抢占主线程模态对话框的焦点吗 ?
引用 3 楼 phommy 的回复:
c#对模态窗口的约定就是后弹出的先关闭,无法改变 但你提到有多线程,线程间是没这个限制的,你只需要让那个锁屏窗口定时把自己Active就行了,甚至可以把锁屏窗口直接在新线程里打开 Task.Run(() => new LockForm1().ShowDialog());
phommy 2014-11-13
  • 打赏
  • 举报
回复
c#对模态窗口的约定就是后弹出的先关闭,无法改变 但你提到有多线程,线程间是没这个限制的,你只需要让那个锁屏窗口定时把自己Active就行了,甚至可以把锁屏窗口直接在新线程里打开 Task.Run(() => new LockForm1().ShowDialog());
宝_爸 2014-11-13
  • 打赏
  • 举报
回复
参考: Keep window on top and steal focus in WinForms http://stackoverflow.com/questions/278237/keep-window-on-top-and-steal-focus-in-winforms 第一个回答是说用钩子什么的。 后面的应该都是用定时器。
devmiao 2014-11-12
  • 打赏
  • 举报
回复
定时器判断getforegroundwindow,如果不是自己,就把弹出的对话框发wm_close关闭。
代码下载链接: https://pan.quark.cn/s/a4b39357ea24 第 一 章 概述 1-1 简述计算机程序设计语言的发展阶段。 解: 自从计算机诞生以来,程序设计语言经历了从机器语言、汇编语言到高级语言的演变过程,C++语言作为一种面向对象的编程语言,也属于高级语言范畴。 1-2 面向对象的编程语言具备哪些特性? 解: 面向对象的编程语言与传统的编程语言有着本质的区别,其设计初衷是为了更直观地模拟现实世界中存在的事物及其相互关系。这类编程语言将客观事物视为具有属性和行为的对象,通过抽象方法提取出同一类对象的共同属性(静态特征)和行为(动态特征),从而构建类。借助类的继承与多态机制,能够便捷地实现代码复用,显著缩短软件开发周期,并确保软件风格的一致性。因此,面向对象的编程语言使得程序能够较为准确地反映问题域的本质,软件开发人员可以运用人类惯用的思维模式进行开发工作。C++语言是目前应用最为广泛的面向对象编程语言。 1-3 结构化程序设计方法是什么?这种方法有哪些优势和不足? 解: 结构化程序设计的核心思想是自顶向下、逐步求精;其程序结构按照功能划分为多个基本模块;各模块之间的关联尽可能简化,在功能上保持相对独立性;每个模块内部均由顺序、选择和循环三种基本结构构成;模块化实现的具体途径是利用子程序。结构化程序设计由于采用模块分解与功能抽象,自顶向下、分而治之的策略,从而有效地将一个较为复杂的程序系统设计任务分解成许多易于管理和处理的子任务,便于开发与维护。 尽管结构化程序设计方法具备诸多优点,但它本质上仍是一种面向过程的程序设计方法,将数据与处理数据的操作分离为相互独立的实体。当数据结构发生变化时,所有相关的处理过程都需要进行相应的调整,每一种...

111,131

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧