如果条件为MDI父控制

时间:2013-05-10 05:06:44

标签: c# winforms

我有一个mdi父母和mdi孩子,我想知道我应该在什么条件下为此调用正确的类。

senario是我在mdi parent(selectall)中有一个按钮然后我想将该按钮用于活动的mdi孩子。

让我们说:

private void iSelectAll_ItemClick(object sender,  e)
        {
            Form DtexteditoR = new DtexteditoR();
            //DtexteditoR.Show();

            if (DtexteditoR.MdiChild == true)
            {
                    rtb.SelectAll();
            }

        }

但错误

  

运算符==不能应用于类型的操作数   'System.Windows.Forms.Form'和'bool'

出现......我该怎么办?

2 个答案:

答案 0 :(得分:3)

您需要Form.IsMdiChild来检查表单是否为Mdi Child。

  

获取一个值,该值指示表单是否为多文档   接口(MDI)子表单。

private void iSelectAll_ItemClick(object sender,  e)
{
    Form DtexteditoR = new DtexteditoR();
    //DtexteditoR.Show();

    if (DtexteditoR.IsMdiChild)
    {
            rtb.SelectAll();
    }

}

要检查MdiContainer使用Form.IsMdiContainer属性

答案 1 :(得分:0)

编写一个继承自Form类的表单类,并实现以下方法(MasterForm): 主表单类childs中的方法:selectAll

public class  MasterForm:Form
{
public virtual void SelectAll()
{
}
}

每个子表单必须从MasterForm中删除并覆盖SelectAll方法

public class Child1:MasterForm
{
public override void SelectAll()
{
    this.rtb.SelectAll();
 }
}

按钮单击正文中的父表单

if(this.ActiveMdiChild!=null)
{
        MasterForm frm =(MasterForm) this.ActiveMdiChild;     
      frm.SelectAll();
}