我有一个在执行特定操作后弹出的获胜表格。我希望它以屏幕为中心,锁定对任何其他窗口的访问,直到表单关闭。
基本上保持在顶部,无法访问其他表格。我怎样才能做到这一点?
您正在寻找的是模态表单:显示模态和无模态 Windows 窗体
Form1 form1 = new Form1();
/* Calling ShowDialog instead of Form.Show() will force
* the user to close that form first */
form1.ShowDialog();
更新 1:
如果您正在像Workrave软件一样寻找系统范围的阻塞,可以执行以下操作:
创建一个没有边框的窗口,最大化并使边框(在您的情况下非常大)透明。在这个窗口的中间会有你的伪对话框。
同样,人们会截取屏幕截图并以该形式显示,但如果有一些屏幕活动,您将看不到屏幕活动。
Workrave 阻塞活动示例:
除非您跳过/推迟休息时间,否则您无法在桌面上执行任何操作。
注意:Workrave 是一项有助于恢复和预防重复性劳损 (RSI) 的计划。该程序经常提醒您进行微暂停、休息时间并将您限制在每日限制范围内。(来自他们的网站)
更新 2: 由于 Wrokrave 是开源的,因此可以浏览代码以查看他们是如何实现该阻塞系统的:http: //sourceforge.net/projects/workrave/
你可以使用:
YourForm.ShowDialog().
ShowDialog 不允许访问后台表单,除非当前表单已关闭。