在显示其他表单时禁用完整表单
本文关键字:表单 显示 其他 | 更新日期: 2023-09-27 18:09:53
我想禁用我的mainForm
,而optionsForm
设置为显示。
要做到这一点,我想把一个看不见的形式在mainForm
的顶部,所以交互是不可能的(但只能通过鼠标点击,键盘敲击仍然可以工作)。
如何做到这一点?
你可以做以下两件事之一:
1)将表单显示为对话框。当Form2可见时,这将阻止第一个表单被选择。
Form f2 = new Form2();
f2.ShowDialog();
或2)禁用第一个表单上的所有控件,如果你想以非模态方式显示(这听起来像是你不想要的)
Form f2 = new Form2();
f2.Shown += ToggleControls;
f2.Closing += ToggleControls;
f2.Show();
public void ToggleControls(object o, sender e)
{
foreach(Control c in this.Controls)
{
c.Enabled = !c.Enabled;
}
}
或者您可以在另一个打开时隐藏主窗体:
this.Visible = false;
optionsForm.ShowDialog();
this.Visible = true;
性能好时效果最好。在您的主窗体Button-Click
事件中尝试此操作。
try
{
form2 f = new form2();
Enabled = false;
f.ShowDialog(this);
Enabled = true;
f.Dispose();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}