2013-05-10 67 views
0

我有一个mdi父母和mdi孩子,我想知道我应该把什么条件调用正确的类为此。如果条件为MDI家长控制

senario是我得到了一个按钮在mdi父母(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中' 和 '布尔'

的操作数

显示...我该怎么办?

回答

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属性

+0

它的工作先生的感谢! 5分钟后接受它。但还有一件事先生。是否有可能我可以控制从mdi孩子到mdi父母的工具? rtb来自mdi孩子,并且该控制来自用作mdi父母的mainform,但是在mdi父母中rtb不被识别。有没有办法我可以从mdichild调用一个工具到mainform? – Elegiac 2013-05-10 05:16:00

+0

@Elegiac,对于你的其他问题,欢迎您搜索'在表单之间传递数据 - winform',这是一个comon问题,你会发现很多关于它的信息,这里是一个起点http:// stackoverflow。 com/questions/1665533 /在两个windows-forms-in-c-sharp之间进行通信以及这个http://stackoverflow.com/questions/280579/how-do-i-pass-a-value-from-一个孩子回到父母的形式 – Habib 2013-05-10 05:18:40

+1

真的很棒的先生。谢谢:)。 – Elegiac 2013-05-10 05:20:21

0

编写从表格类继承的形式类并实现以下的方法(型模):在主窗体类儿童的的 方法:全选

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(); 
}