2013-05-10 94 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(); 
}