2012-07-24 41 views
0

我的主窗體,有兩個按鈕,將顯示其他窗體 (每個按鈕顯示一個新窗體) 現在,我的主窗體類名是MyMainForm .. 其他兩個窗體類的名稱是:MySubForm1,MySubForm2 問題是,我有一些麻煩訪問一些在子表格內的一些東西在MyMainForm ..C#winform,讓所有相關類部分是一個好主意?

它是一個好主意,讓他們都部分?

+2

您能否澄清一下「子表單」是什麼?它只是你展示的另一種形式嗎?對話框? MDI應用程序中的「文檔」表單?如果上述任何一種情況屬實,部分類別在這裏將不合適。 – 2012-07-24 17:26:47

+0

是的,它只是一個表格,我正在顯示它的System.Windows.Forms.Form – vexe 2012-07-24 17:29:46

+0

你能說明你想傳遞什麼樣的信息嗎? – 2012-07-24 17:37:28

回答

2

聽起來像你期望能夠訪問不同形式的表單的私人成員。

如果您希望能夠訪問其任何成員,您需要從「子表單」參考父表單。

其次,你將無法訪問「私人」成員。再次提供兩個選項,爲您想要的成員創建公共get/set方法,或者將對象的訪問修飾符更改爲public/internal。

發佈一些更多的代碼來解釋你所嘗試過的以及你想要達到的目標,並且我可能會指出你正確的方向。

此外,在對您的問題更直接的迴應中,partials與您嘗試做的事無關,它們用於擴展現有類,同時保持邏輯文件中代碼的分離。

public class Main : Form 
{ 
    // assuming here you have three textboxes 

    private void button1_Click(eventargs etc) 
    { 
     OtherForm otherForm = new OtherForm() { Text1 = textbox1.Text, 
               Text2 = textbox2.Text, 
               Text3 = textbox3.Text }; 
     otherForm.Show(); 
    } 

} 

public class OtherForm : Form 
{ 
    public String Text1 { get; set; } 
    public String Text2 { get; set; } 
    public String Text3 { get; set; } 
} 

使用此設置,您的OtherForm擁有文本值的副本,就像他們在創建表格時一樣。

通過您的問題和後續評論的聲音,這是您期望在您的方案中,但我會再說一遍,向我們展示一些代碼,我們可以提供更好的幫助。部分內容肯定不是正確的答案。

相關問題