2009-08-21 14 views
2

これは.NET Winformアプリケーションの質問です。C#WinFormのさまざまなオプションに応じて設定用のUIを設計する方法は?

私は時々このデザインになります。シンプルなフォーム。フォームの上に、選択するオプションのリストがあります。選択された別のオプションに応じて、フォームの本文に設定の詳細の一意のパネルが表示されます。

Visual StudioでこのUIをきちんと設計するにはどうすればいいですか?私には2つの考えがあります。最初のアイデアは多くのパネルを持つことです、各パネルには設定コントロールが含まれています。実行時には、オプションの選択に応じてパネルを非表示にします。このソリューションでは、VSデザイナーでフォームのコントロールを整理するのは難しいです。すべてのパネルを保持するには大きなフォームを設定する必要があります。パネルは互いに隣り合って配置されます。書き込む実行時読み込みコードはたくさんあります。たとえば、フォームを読み込むときには、パネルを非表示にして、フォームのサイズをリセットする必要があります。オプションを選択するときは、パネルを移動して表示/非表示にする必要があります。退屈な!

第2の考えは、TabControlを使用することです。タブはあなたのために整理されているので、TabControlは良いです。パネルを移動してフォームのサイズを変更する必要はありません。実行時に実行する必要があるのは、オプションに応じて適切なタブを選択することだけです。一つのことは、実際にはTabControlではないため、TabControlの部分をユーザーから隠す必要があることです。 TabControlのタブボタンを非表示にするのは難しくありませんが、その後、タブ領域とフォーム上の次の部分の間には常に大きなギャップがあります。

誰でも、UIを設計するうえで適切な方法がありますか?たぶん、パネルやTabControlsを使用していないが、よりスマートな方法? TabControlがほとんどの場合、TabControlのタブ部分を隠して表示する方法と、TabControlのマージンと境界線のサイズを設定して大きなギャップがないようにする方法はありますか?どんな答えや提案にも感謝します。

答えて

3

私はこれを行う必要があるとき、私は独自のUserControlのコントロールの各グループを入れ、私はそれらの間で切り替えるために何かを使用することができます。私のブログで例えばImplementing a paged Options dialogを見てください。

+0

ここに戻ってくる前に、あなたのブログを見ました。主なアイデアはユーザーコントロールを使用することだと思います。実際には、ユーザーコントロールを使用するもう1つの良い点は、UIコードを各ユーザーコントロールに分割できることです。対照的に、私がパネルやTabControlsを使用する場合、私は非常にきれいではない1つのフォーム内のすべてのパネルのUIコードを配置する必要があります。アイデアをありがとう。 – Steve

2

「設定の詳細」ごとにUserControlを作成し、ユーザーがオプションのUserControlを読み込むオプションを選択したときに作成することをお勧めします。フォームのサイズを調整する必要があるかもしれませんが、IDEのすべての「設定の詳細」を簡単に管理できます。

0

あなたはいくつかのデザインパターンが必要ですね。

必要/必要に応じてUIオブジェクトを返すUIファクトリを作成しないでください。

1

ユーザーコントロールを使用すると、問題を解決するのに便利です。しかし、おそらくパネルでそれらを設定し、プロパティ "Visible"と "Dock"で再生する必要があります。

デザインモードで「塗りつぶし」でドッキングする必要はありません。このプロパティは、ランタイムまたは必要に応じて設定できます。

このヘルプが必要です。

+0

アイデアはRoger'sと同じです。彼は私に例を与えて以来、私は答えとして彼を選ぶ。でも、ありがとう。 – Steve

関連する問題