2009-05-28 4 views
0

私は、データ入力フォームの少ない非常に単純なWinFormsアプリケーションを作成しています。しかし、ユーザーがこれらのフォームに入る前に、彼女は取るアクション(つまり、検索クエリを入力した後に開くフォーム)を選択する必要があります。このアプリケーションは従来のカスタムDOS FoxProアプリケーションの書き換えであるため、ユーザーはUIを可能な限り古いものと同じように(シンプルに)したいと考えています。 (。私はより近代的なUIに移行する顧客を説得する方法を議論する必要はありませんのでご注意ください)WinFormsの簡単なメニューのようなナビゲーション

さて、UIは次のようになります。

│--------------│ 
│ Customers >> │ │-----------------│ 
│ Invoices  │ │ Find customer │ 
│ -------------│ │ Create new  │ 
│ .. etc..  │ │ Delete customer │ 
│ -------------│ │-----------------│ 
│ Exit   │ 
│--------------│ 

メニューがなければなりません非常に大きくスクリーンの中央にあります(フォーム)。これは、古典的なMenuStripが問題にならないことを意味します。適切な項目を使用してその場でListBoxを作成する必要がありますか?どのようにこれにアプローチしますか?私はすでにオブジェクトに格納されたナビゲーション構造を持っています。ナビゲーションUIをユーザーに提示する方法をアドバイスしています。

また、この場合、キーボードの入力はマウスの操作よりも重要かつ重要です。

答えて

0

私はあなたがToolStripコントロールでこれを行うことができると思います。 Dock = NoneとLayoutStyle = VerticalStackWithOverflowを開始として設定します。

1

私が行っていた古いプロジェクトは、DOS(Clipper)アプリケーションからWindowsへの変換でした。私たちは、ウェブ感(シングルクリックハイパーリンク)のより多くので、それに似たものに決めた:

- - - - - - - - - - - - - - - - - - - - - - - 
| Bolded Group Header | Bolded Group Header | 
| Item Link 1  | Item Link 3  | 
| Item Link 2  | Item Link 4  | 
- - - - - - - - - - - - - - - - - - - - - - - 

グループヘッダーをダブルクリックすると、そのグループ内のすべてのリンクはバックグラウンドで一度に開くことになります。さらに、アプリケーションのコンテキスト(選択した顧客など)がツールバーから選択されたため、現在の顧客の詳細が常に表示されました。

技術的には、TPanel(C++ BuilderではVCLを使用していました)およびクライアント領域ラベルの子孫のコントロールを使用しましたが、.NETで同様のことを簡単に行うことができます。

幸運を祈る!

EDIT:あなたがキーボードのサポートを述べたので、ちょうど更新するために、パネルは、ので、それらに応じて、すべてのWindowsメッセージやキーストロークを取得するのはあなた次第(私たちはフルキーボードのサポートがあったが、我々は自分自身ことをコーディングする必要がなかった)です。もしあなたが何もコード化しなくてもうまくいくものを望むなら、私はListBoxコントロールの代わりにListViewを使うでしょう。

1

私は窓のUIにKryptonコントロールスイートを使用しています。本当に使いやすく、ツールキットは無料です。それはいくつかの偉大なcontext menuオプションがあります。メニューオプションのスタックを提供するナビゲーションコントロールもあります。

関連する問題