如何暂时阻止表单获得焦点/激活?

时间:2011-05-10 15:33:59

标签: c# winforms focus

我的应用程序打开n个表单,用户可以在这些表单之间自由切换。 当用户决定确认在其中一个表单上执行的操作时,我想阻止其他表单,直到此过程(可能会打开MessageBoxes和/或其他表单)结束。 禁用表单是不够的,因为用户无法对它们执行任何操作,但会激活Activated事件,这正是我想要避免的。 我尝试将ControlStyles.Selectable设置为false以表示所有这些形式,但它不起作用。

为了使其更清晰,表单覆盖整个屏幕,以便用户点击任务栏激活它们。在这种情况下,打开模态表单并在其中执行确认代码并不会阻止激活Activated事件。

2 个答案:

答案 0 :(得分:3)

尝试使用Form.ShowDialog()方法。

答案 1 :(得分:0)

您可以使用Form.ShowDialog方法方法在应用程序中显示模式对话框。调用此方法时,直到关闭对话框后才会执行其后面的代码。