如何在c#visual studio 2010中激活其他子表单时禁用子表单

时间:2014-03-30 16:22:41

标签: c# visual-studio-2010

我想只禁用父窗体的控件,只需按一下按钮即可。就像在我的winform应用程序中我正在加载一个按钮的子窗体,所以我想知道如何禁用窗体的控件而不是父窗体的外观。有人可以帮帮我吗?

1 个答案:

答案 0 :(得分:1)

检查子表单是否在Application.OpenForms中。类似的东西:

bool IsOpen=false;
FormCollection fc = Application.OpenForms;
foreach (Form frm in fc)
{
    if(frm.Name=="YourFormName")
        IsOpen=true;
}
if(IsOpen)
{
    //Child form is open
    btnGoToChild.Enabled=false;
}
else
{
    //Not open
    btnGoToChild.Enable=true;
}

要重新启用控件,

父表单

gotoChild()
{
    frmChild=new frmChild(this);
    frmChild.Show();
}

儿童表格

frmParent ObjParent=null;
frmChild(frmParent obj)   //Constructor
{
    this.ObjParent=obj;
}
CloseForm()  //invoke this function in Form_Close
{
    if(ObjParent!=null)
        ObjParent.btnGoToChild.Enabled=true;
}

将btnGoToChild的Modifiers属性更改为public。然后,它只能从另一种形式访问。