我的主窗體,有兩個按鈕,將顯示其他窗體 (每個按鈕顯示一個新窗體) 現在,我的主窗體類名是MyMainForm .. 其他兩個窗體類的名稱是:MySubForm1,MySubForm2 問題是,我有一些麻煩訪問一些在子表格內的一些東西在MyMainForm ..C#winform,讓所有相關類部分是一個好主意?
它是一個好主意,讓他們都部分?
我的主窗體,有兩個按鈕,將顯示其他窗體 (每個按鈕顯示一個新窗體) 現在,我的主窗體類名是MyMainForm .. 其他兩個窗體類的名稱是:MySubForm1,MySubForm2 問題是,我有一些麻煩訪問一些在子表格內的一些東西在MyMainForm ..C#winform,讓所有相關類部分是一個好主意?
它是一個好主意,讓他們都部分?
聽起來像你期望能夠訪問不同形式的表單的私人成員。
如果您希望能夠訪問其任何成員,您需要從「子表單」參考父表單。
其次,你將無法訪問「私人」成員。再次提供兩個選項,爲您想要的成員創建公共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擁有文本值的副本,就像他們在創建表格時一樣。
通過您的問題和後續評論的聲音,這是您期望在您的方案中,但我會再說一遍,向我們展示一些代碼,我們可以提供更好的幫助。部分內容肯定不是正確的答案。
您能否澄清一下「子表單」是什麼?它只是你展示的另一種形式嗎?對話框? MDI應用程序中的「文檔」表單?如果上述任何一種情況屬實,部分類別在這裏將不合適。 – 2012-07-24 17:26:47
是的,它只是一個表格,我正在顯示它的System.Windows.Forms.Form – vexe 2012-07-24 17:29:46
你能說明你想傳遞什麼樣的信息嗎? – 2012-07-24 17:37:28