0

私は多くのフォームとコントロールを備えたプロジェクトを実装しています。ユーザーがオプションを指定するためのポップアップフォームを動的に作成することを選択した場合、コントロールの詳細を取得してリストなどに保存するための最良の方法は何ですか?ユーザーが特定のオプション(タスクの場合)を指定し終えたらフォームを強制終了します次に、ユーザーが選択したものに固有のオプションを含むフォームをロードします(フォームが強制終了される前)。確かに、VB.NETとMSは、フォームからすべてを削除する新しい方法を開発しました。これにより、この情報をRAMメモリに保存し、フォームがDim myformを介して新しいフォーム(?)としてインスタンス化されるたびにその情報を適用できます。

何が求められているかを明確にするために、いくつかの具体的な質問を列挙します。

  1. それぞれに数百のコントロールがある多数のフォームを処理するときに、メモリの消費を最小限に抑えるために、どの特定のVisual Studio(VB.NET 2012)ツールを最適に実装できるか。おそらくコード例やポインタを与えてください。

  2. Visual Studio(VB.NET 2012)には、特定のGUIがガベージコレクション( " GC」)。コントロールが再度必要になった場合は、最後に保存されたデータをフェッチして、コントロールにデータを入力します。

  3. GUIによって消費されるメモリリークを最小限に抑えるためのVisualStudio(VB.NET 2012)で最も効果的な(メモリ効率の高い)アプローチであることが証明されているもの。

UserControlsとXMLSerializeの使用を示す情報があるようですが、これを明示的に実行するために必要なワークフローに関する情報はまばらです。

4

1 に答える 1

1

コンテキストに応じて異なるオプション セットを動的に表示する必要がある場合は、コンテキストUserControlごとに個別に作成することをお勧めします。次に、コンテキストに応じて、適切なユーザー コントロールをポップアップに追加するだけです。データに関しては、データ モデルを UI から分離することを強くお勧めします。UI のコピーをメモリに保持しなくても、データのコピーをメモリに保持できるように、コードを階層化する必要があります。つまり、フォームの多くのインスタンスをロードおよびアンロードできる必要があります。これらのインスタンスはすべて、メモリ内のデータの同じコピーに対して操作されます。フォームまたはユーザー コントロールをロードするときは、表示/維持する適切なデータ オブジェクトへの参照を単純に与える必要があります。

于 2013-01-25T17:38:38.797 に答える