C# 显示其他表单时禁用完整表单
我想禁用我的C# 显示其他表单时禁用完整表单,c#,.net,winforms,.net-3.5,C#,.net,Winforms,.net 3.5,我想禁用我的main表单,而选项表单设置为显示 为此,我考虑在mainForm的顶部放置一个不可见的表单,这样就不可能进行交互(但只有通过鼠标点击,键盘笔划才能工作) 如何做到这一点?您可以做以下两件事之一: 1) 将窗体显示为对话框。这将阻止在Form2可见时选择第一个form Form f2 = new Form2(); f2.ShowDialog(); 或者2)如果您想以非模态方式显示(听起来好像您不想要),请禁用第一个窗体上的所有控件 也可以在另一个窗体打开时隐藏主窗体: this.V
main表单
,而选项表单
设置为显示
为此,我考虑在mainForm
的顶部放置一个不可见的表单,这样就不可能进行交互(但只有通过鼠标点击,键盘笔划才能工作)
如何做到这一点?您可以做以下两件事之一: 1) 将窗体显示为对话框。这将阻止在Form2可见时选择第一个form
Form f2 = new Form2();
f2.ShowDialog();
或者2)如果您想以非模态方式显示(听起来好像您不想要),请禁用第一个窗体上的所有控件
也可以在另一个窗体打开时隐藏主窗体:
this.Visible = false;
optionsForm.ShowDialog();
this.Visible = true;
性能良好时效果最佳。在主窗体
按钮中尝试此操作,然后单击事件
try
{
form2 f = new form2();
Enabled = false;
f.ShowDialog(this);
Enabled = true;
f.Dispose();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}
这就是ShowDialog的用途,它将以模式对话框的形式打开您的第二个表单。为什么不在您打开选项表单的地方打开this.Enabled=false
?@MarkHall谢谢,我不知道ShowDialog()
选项。@Devator:很高兴它有帮助。如果你的问题解决了,请随意接受答案。我不得不等几分钟才能回答。现在完成;-)
try
{
form2 f = new form2();
Enabled = false;
f.ShowDialog(this);
Enabled = true;
f.Dispose();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}