如何在显示弹出式窗体时禁用表单?

时间:2012-05-28 07:58:02

标签: c# winforms popup focus

我有一个“主要”表单(form1)。 在该表单中,我成功打开另一个表单(form2) - 但是 - 当该表单打开时,您仍然可以控制基础表单(form1)。

我不希望用户能够这样做,并且每当他试图点击它或其他东西时,弹出的表单(form2)应该获得焦点/闪光,有些默认Windows声音。 我刚刚描述了弹出窗口是FileSave / OpenDialog时它的作用。这些对话框完全按照我希望它们的工作方式工作。

我已尝试设置form2.Owner = form1;,但这不会产生预期效果。

所以我的问题基本上是:我怎样才能获得相同的焦点效果等。在表单上 - 它是如何在Save / OpenDialog上的?

谢谢,

~Tgys

1 个答案:

答案 0 :(得分:4)

打开form2使用form2.ShowDialog()

form1班级

form2 form2Object = new form2();
form2.ShowDialog(this);

这样,form1将保留在后台并且不可单击,直到显示form2。如果需要,还可以从form2返回对话框结果。来自MSDN的代码。

  Form2 testDialog = new Form2();

   // Show testDialog as a modal dialog and determine if DialogResult = OK.
   if (testDialog.ShowDialog(this) == DialogResult.OK)
   {
      // Read the contents of testDialog's TextBox.
      this.txtResult.Text = testDialog.TextBox1.Text;
   }
   else
   {
      this.txtResult.Text = "Cancelled";
   }