C#禁用表单

时间:2017-02-01 10:04:37

标签: c# forms

我创建了一个带有两个复选框的菜单表单。当我选择其中一个时,我想禁用另一个表单。我试着写这段代码:

void CheckBox1CheckedChanged(object sender, EventArgs e)
    {
        if (checkBox1.Checked == true){
            checkBox1.Checked=true;
            checkBox2.Checked=false;

            classificheForm cf=new classificheForm();
            cf.Enabled=false;

            classificheJunioresForm cjf=new classificheJunioresForm();
            cjf.Enabled=false;
        }
    }

但不起作用,确实形式不会被禁用。我该如何解决?

2 个答案:

答案 0 :(得分:4)

您正在创建新的Form并立即停用它:

classificheForm cf=new classificheForm();
cf.Enabled=false;

相反,您应该使用对要禁用的Form的引用。例如,如果在构造函数中创建表单:

classificheForm cf;

public SomeClassConstructor()
{
    cf=new classificheForm();
}

然后在你的活动中你会这样做:

cf.Enabled=false;

请注意,您还可以隐藏和显示以下表单:

cf.Hide();
cf.Show();

请注意,需要禁用Form听起来像是XY问题。如果您不再需要该表格,请将其关闭或隐藏。在需要时也只使用Form等...

如果您在使用对话Form时需要停用主form,最好拨打

dialog.ShowDialog();

因为这会阻止用户在关闭对话框之前与主Form进行互动。

答案 1 :(得分:-1)

您可以轻松隐藏表单

classificheForm cf=new classificheForm();
cf.Show();

classificheJunioresForm cjf=new classificheJunioresForm();
cjf.Hide();

或者“禁用”是什么意思?