我想在mainForm
设置为显示时禁用optionsForm
。
要做到这一点,我想在mainForm
上面放一个看不见的形式,这样就无法进行交互(但只有通过鼠标点击,键盘敲击仍然有效)。
如何做到这一点?
答案 0 :(得分:5)
您可以执行以下两项操作之一:
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;
}
}
答案 1 :(得分:0)
或者您可以隐藏主窗体而另一个打开:
this.Visible = false;
optionsForm.ShowDialog();
this.Visible = true;
答案 2 :(得分:0)
效果最佳,性能良好。请在主要格式Button-Click
活动中尝试此操作。
try
{
form2 f = new form2();
Enabled = false;
f.ShowDialog(this);
Enabled = true;
f.Dispose();
}
catch (Exception exception)
{
MessageBox.Show(exception.Message);
}