在显示其他表单时禁用完整表单

Dev*_*tor 3 .net c# .net-3.5 winforms

我想禁用我mainFormoptionsForm被设置为显示.

要做到这一点,我想把一个看不见的形式放在上面,mainForm所以互动是不可能的(但只有通过鼠标点击,键盘敲击仍然可以工作).

如何才能做到这一点?

Ian*_*Ian 5

您可以执行以下两项操作之一:

1)将表单显示为对话框.这将阻止在Form2可见时可选择第一个表单.

Form f2 = new Form2();
f2.ShowDialog();
Run Code Online (Sandbox Code Playgroud)

或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;
    }
}
Run Code Online (Sandbox Code Playgroud)