2009-08-14 7 views
5

以下のスタイルのどれをお好みですか?GUIデザイン - 複数のフォーム対シミュレートされたMDI(タブ)対PageControl

  • タスクを実行するためのアプリケーションは、新しい形
  • に別のタブでは、様々な「フォーム」を維持したアプリケーション
  • PageControlに基づいており、内容に応じてあなたに右のタブが表示されているアプリケーションを開きますあなたがしたい。
  • 何か他

また、あなたは、GUIデザインのために何か良いリンクがありますか?

答えて

7

プログラマの観点から、PageControlソリューションはすぐに手を抜けてしまいます。おそらくあまりにも多くのコードと確かに1つのフォーム上の多くのコンポーネントです。 (元々、この質問はDelphiのタグがついていたので、そこから出ます)

ユーザーの観点から見ると、「新しいウィンドウを開く」パラダイムはしばしば混乱します。われわれは、マルチタスクが可能で、多くのオープンなウィンドウやタスクを処理できると思う傾向がありますが、私たちはコンピュータではなく時間の無駄に切り替わり、正確さを失うことはありません。

これは明らかにアプリケーションの種類によって異なります。しかし、私は彼らの最新の化身でChromeとFirefoxのショーとしてのパラダイムに傾向がある:

  • は(ドラッグ%を経由してドッキングとドッキング解除、ユーザが独自のフォームにタブを外しましょう
  • 異なるタブで様々な形態を保ちますドロップ)
  • は、私があまりにもアプリのメイン画面としてSDIのようなものを実装するナビゲーション

の良い方法を追加します。 "outlook style"のようなものを見てください。ナビゲーション、オブジェクトのリスト、異なるペイン内のオブジェクトの詳細、コックピットのような追加のペイン。そして、特定のタスク(いくつかのモーダル、いくつかのモーダルではない)のために新しいウィンドウ/フォームを開きますが、短命のままです。電子メールが書き込まれた後、それが送信され、ウィンドウが閉じます。しかし、私はそうすることができれば、その時に複数の電子メールを処理する可能性があります。

問題を見てください。ダッシュボードの文字がある場合は、「Outlookスタイル」などとします。ユーザーが幅広く普及していて異種でコンピュータに精通していない人であれば、SDIやフォームをタブで使用してください。あなたがプログラマーのために書くのであれば、私たちがそれを扱うことができると考える傾向があるので、複数のフォームに行くかもしれません。複数の画面でうまく動作します(うまくいけば)。

+0

+1、素敵な答え。デルファイ特有のことは何もない(質問もあなたの答えもない)が、あなたは同意するだろう。 – mghie

+0

@mghie:私は同意します。しかし、私はPageControlのパラダイムを使用するために他の言語で必要とされるコードの量について知らない。多分、これが最適化された言語があり、それが行く方法です。 –

+0

@Ralph:フォームまたはフレームをページコントロールでページとして使用すると、コンポーネントの数や単一ユニットのサイズに問題はありません。あなたが書いているように、それはプログラマのPOVから問題があります(もしそうなら実装の詳細)。私はその質問が主にGUI設計の部分であると理解しました。 – mghie

2

私の意見では、MDIは可能な限り最悪の選択です。たくさんのウィンドウのサイズを変更したり、タイルを並べたりする必要がある以上に嫌なことはありません。

タブが悪いのは特に複数の行がある場合(または行が1つでもタブがタブに収まらず、ファンキーなスクロールバーまたは「詳細」ボタンを使用する必要がある場合) )。

私はむしろ、プログラマーが問題について考えるのを見て、私がユーザーとして何をしているかに基づいて見たいものを見せてくれると思うでしょう。ユーザーコントロールとして(離散フォームとは対照的に)ユーザーコントロールとしてさまざまなユーザーインターフェイスを実装し、現在のコンテキストに基づいてそれらを表示または非表示にする方法があります。

0

各タブのコンテンツにフレームを使用すると、タブ付きフォームが適しています。これにより、1つのフォーム単位であまりにも多くのコードを手に入れることができます。 Google Chromeと同じようにしてください。私は個人的に、実際には、ユーザーがそれを要求したときにのみ読み込まれるフレームであるため、ユーザーがそれらをすべて開く必要がない限り多くのタブが表示されることはありません。

関連する問題