如何暂时阻止表单获得焦点/激活
本文关键字:焦点 激活 表单 何暂时 | 更新日期: 2023-09-27 17:56:04
我的应用程序打开了n个表单,用户可以在这些表单之间自由地来回切换。当用户决定确认对其中一个表单执行的操作时,我想阻止其他表单,直到此过程(可能会打开 MessageBox 和/或其他表单)结束。禁用表单是不够的,因为用户无法对它们执行任何操作,但是触发了 Activated 事件,这正是我想要避免的。我试图将 ControlStyles.Selectable 设置为 false 以用于所有这些表单,但它不起作用。
只是为了使其更清晰,表单覆盖了整个屏幕,因此用户单击任务栏激活它们。在这种情况下,打开模式窗体并在那里执行确认代码不会阻止触发 Activated 事件。
尝试使用 Form.ShowDialog() 方法。
可以使用
Form.ShowDialog
方法在应用程序中显示模式对话框。调用此方法时,直到关闭对话框后才会执行其后的代码。