0

form1 には、いくつかのチェックボックスがある form2 を開くコマンド ボタンがあります。プログラムを実行するとform1が最初に表示され、コマンドボタンをクリックしてform2に移動し、チェックボックスの1つをクリックして、form1に戻って再びform2に戻ると、チェックボックスの状態がチェックされていない状態に変わりますまた。「チェック済み」の状態を維持するにはどうすればよいですか?私が持っている唯一のコードは、from1 のコマンド ボタンからのものです。

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

1 に答える 1

1

この種の問題を考える最善の方法は、UI (「ビュー」) をアプリケーションによって編集されているデータの状態 (「モデル」) から切り離すことです。

たとえば、両方のフォームで使用できるクラス インスタンスに状態を格納します。各フォームのチェックボックスの状態を、そのクラス インスタンスでチェックされた状態を表す boolean プロパティの状態にバインドします。

使用している UI テクノロジに応じて、モデル プロパティをそのプロパティの値を表す UI 要素にバインドするためのサポートが向上または低下します。WPF と Silverlight は適切にサポートされています。WinForms はそのままでは適切なサポートを提供しませんが、適切なサポートを追加するサード パーティのライブラリがあります。または、チェックボックスの状態を、イベント ハンドラーを使用してその状態をサポートするブール値プロパティの状態に手動で接続できます。

これは、MVC または Model-View-Controller として知られるパターンの一部です。

于 2012-12-03T21:24:10.273 に答える