1

すべてのフォーム要素を自動的に処理し、それらの状態/値をテキスト ファイルに保存して、後で読み込むことができるように、非常に一般化された関数を使用して C# winform アプリケーションを設計しようとしています。詳細に縛られないので、将来のプロジェクトでこのコードを簡単に再利用できるように、非常に一般化してほしいと思います。保存したいフォーム要素は、テキスト ボックス、コンボ ボックス、データ グリッド ビュー、リスト ボックスなどです。私は彼らの価値観と彼らに関するすべてを保存したい.

私が行っていた 1 つの方法は、考えられるすべてのフォーム要素を調べてから、それぞれの型を検出し、対応する C# コードを作成してその値を再作成することでした ('tboxmine.value="青い象"')。コードをファイルに書き込んで、ファイルからコードをロードし、CSC コンパイラを使用して実行できるようにしました。私のコードはこれまでのところ正しく動作していないようで、このコンパイラが実際に私のアプリケーションでコードを実行しているのではないかと疑っています (おそらく新しいスレッドを作成していると思いますか?)。これを行うためのはるかに簡単な比較的標準的な方法。

4

1 に答える 1

0

これは、逆の「ベスト プラクティス」アプローチに少し似ています。データバインディングについて知らない場合は、調べてみることをお勧めします。

基本的に、データを表すクラスを作成し、データバインディングを使用してコントロールをオブジェクトに関連付けます。コントロールは自動的に適切な値を表示し、ユーザーがそれを変更できるようにします。ユーザーが値を変更した場合、オブジェクトは自動的に更新されます。

データを保存するには、ある種のシリアル化を使用してオブジェクトをファイルに保存します。ロード時に、シリアライザーにクラス構造を再構築させ、(最良の場合) 準備完了です。

これはまさにあなたが求めたものではありませんが、うまく使えるものだと思います ;-)

注意: コントロールの完全な状態が保存されるわけではありません。たとえば、Textbox ではテキストは保存されますが、BackColor は保存されません。

開始するには、このチュートリアルをご覧ください: http://www.codeproject.com/Articles/24656/A-Detailed-Data-Binding-Tutorial

于 2013-01-31T22:30:21.463 に答える