2014-04-04 51 views
0

我有一個表單MDIContainer(form1)的項目,這個form1有4個子窗體(form2,form3,form4,form5)。如何使用parentChild中的ChildForm數據和組件。窗體MDI

所有的數據都需要連接,我的意思是,我需要創造各種形式的一個對象,不要失去這個對象

的數據在Form1,我宣佈所有喜歡的形式:窗口2 frm_2 =新的窗口2 ...

窗口2,form3,form4,form5有DataGridViews,bindingsources等..

有些時候我需要操縱形式之間的數據。

例如:如何通過子表單傳遞數據?但是這個數據需要總是在那裏

例如:。當在Form2上的事件DataGridView2_SelectionChanged我需要從數據庫中獲取一些數據,並放在form3 DataGridView3.But在form3上我有一個方法和綁定DataSourceView和DataGridView3綁定數據集。所以我需要訪問這個方法。

我需要一個例子,如何做到這一點,許多孩子形式和如何這已經被問很多很多次並獲得足夠的答案,來幫助你個個

回答

1

之間進行通信。

(這就是爲什麼你從別人一個downvote你預計你問任何事情之前做一個適當的搜索。!)

跟你描述的,你可以去這樣的設置:手到主參考形式給構造函數中的每個子表單。保留這個引用並使用它來訪問主窗體和通過其許多窗體處理所有其他子窗體。

Form23 form23 = new Form23(this); 
form23.Show(); 

而且在Form23 ..:

// a class variable: 
public Form1 form1; 

public Form23(Form1 form1_); 
{ 
    InitializeComponent(); 
    form1 = form1_; 
} 

現在你可以使用Form1中作爲一個樞紐,並參考各兄弟這樣的:

form1.form22.somePublicDataFieldOrWhatever... 
1

謝謝您的回答。
這是我怎麼現在做的:
在主窗體:

public partial class Form1 : Form 
{ 
public Form2 form2; 
    public Form3 form3; 
    public Form4 form4; 
    public Form5 form5; 

    public Form1() 
    { 
     InitializeComponent(); 

     form2 = new Form2(this); 

     form3 = new Form3(this); 

     form4 = new Form4(this); 

     form5 = new Form5(this); 
    } 
    private void Form1_Load(object sender, EventArgs e) 
    { 


     form2.MdiParent = this; 
     form3.MdiParent = this; 
     form4.MdiParent = this; 
     form5.MdiParent = this; 
     form2.Show(); 
     form3.Show(); 
     form4.Show(); 
     form5.Show(); 
} 
} 

那麼每個子窗體都在主要的參考,像@Taw說:

public partial class Form2 : Form 
{ 
    public Form1 form_1; 

    public Form2(Form1 form1) 
    { 
     InitializeComponent(); 
     form_1 = form1; 
    } 
} 

而且現在我可以做這樣的事情:如果

private void dataGridView1_SelectionChanged(object sender, EventArgs e) 
    { 
     if(dataGridView1.Rows.Count> 1) 
     form_1.form2.UpdateDataGrid(Convert.ToInt16(dataGridView1.SelectedRows[0].Cells[0].Value)); 
    } 

也許它可以幫助別人...... 人ķ發現更好的方法,請分享。

對不起,如果這是重複的問題,但在我的研究中,我沒有看到類似的東西。也許我沒有足夠的研究。=]

謝謝@TaW供您考慮

相關問題