2012-12-03 201 views
0

我有form1,它有一個命令按鈕,打開form2,然後有一些複選框。當我運行程序form1首先出現,我點擊命令按鈕去form2,然後我點擊其中一個複選框,如果我回到form1,再回到form2複選框正在改變其狀態爲未選中再次。我怎樣才能保持它在「檢查」狀態? 我唯一的代碼是從from1的命令按鈕。在表單之間切換時保持複選框的狀態

private void button3_Click(object sender, EventArgs e) 
{ 
    this.Hide(); 
    Form4 form4 = new Form4(); 
    form4.Show();  
} 
+0

這不是C,請檢查您的標籤。 – andyn

+1

這是C還是C#?只標記爲一個或解釋爲什麼兩個。 – djechlin

+0

這是C#對不起! –

回答

1

考慮這種問題的最好方法是將UI(「查看」)從數據的狀態由應用程序(「模型」)被編輯分開。

讓狀態存儲在對兩個表單可用的類實例中。將每個表單中複選框的狀態綁定到表示該類實例中已檢查狀態的布爾屬性的狀態。

根據您使用的UI技術,將模型屬性綁定到表示該屬性值的UI元素有更好或更低的支持。在WPF和Silverlight中有很好的支持。 WinForms不提供良好的支持,但有第三方庫增加了不錯的支持,或者您可以使用事件處理程序手動將複選框的狀態掛鉤到支持該狀態的布爾屬性的狀態。

這是被稱爲MVC或模型 - 視圖 - 控制器的模式的一部分。

+0

謝謝埃裏克我明白你的意思,任何建議的代碼?或者一些鏈接可能會很棒。我剛剛開始C#,並且我沒有任何編程經驗! –

+0

@KostasMar:如果你選擇編寫WinForms,不要。使用更現代的UI框架,如Metro或WPF。如果您需要使用WinForms,請查看此WinForms的MVC框架:http://www.codeproject.com/Articles/383153/The-Model-View-Controller-MVC-Pattern-with-Csharp。這是體面的,雖然沒有WPF支持那麼強大。另外,一般閱讀有關MVC。好的起點:http://en.wikipedia.org/wiki/Model%E2%80%93view%E2%80%93controller –