2011-08-23 87 views
0

當我需要從一種形式的一些信息傳遞給另一個我通常做到以下幾點:溝通表單的最佳做法是什麼?

Form2 form = new Form2(this); 
form.ShowDialog(); 

而且裏面Form2.cs,我使用像一個構造函數:

private Form1 parent; 
public Form2(Form1 form) 
{ 
    ... 
    parent = form; 
} 

這樣我可以只有在textbox1不是Form1中的私有成員時,才能從文本框獲取信息,並執行parent.textbox1.Text。好的,很多時候我需要獲取有關Form1中控件的信息,是否應該爲Form2中所需的控件的每個屬性設置setter和getters?例如:我需要知道Text,ReadOnly和Location的值。我應該爲這些屬性中的每一個設置setter和getters嗎?是否使用內部修飾符是一種不好的做法?

+0

是Form2拉的信息或是Form1推它 –

回答

0

由於這不是我可以告訴的可重用框架,我不會圍繞控件屬性創建包裝屬性。

如果有什麼需要靈活的關於這個父窗體,那麼適當的過程可能是使用一個接口來指定特定的控件存在或一個特定的基本窗體類。

1

由於我不允許將註釋添加到答案中,所以我將添加該註釋。

從接受的答案鏈接的博客文章沒有意義給我(可能只是因爲我對代表的透徹理解不夠)。

如果下一列直插形式frmDestination具有可公開訪問的setter方法(SetCustomerID(string strCustID)),那麼爲什麼你需要傳遞到委託時,你可以通過customerID直接給setter?

我注意到他提到

基本上,所設置的委託方法中的成員變量將被執行Form_Load事件之前填充。如果您注意到在進行frmDestination.Show()調用之前執行委託調用。這樣,您就可以在Form_Load處理中執行該變量。

dest.Show()之前只會打電話dest.SetCustomerID(customerID)不是做同樣的事嗎?

相關問題