2011-01-25 10 views
3

のVS .NET 4.0:このUIがうまくいくためのエレガントな方法?

ComboBoxのテキストが変更(イベント)されたときにComboBoxのテキストと一致するデータをサーバーに照会するコンボボックスがいくつかあります。

ユーザーが結果を見て、おそらくそれらを使用できるように、クエリが完了したらComboBoxをドロップします。

問題:

矢継ぎ早クエリ=>矢継ぎ早ドロップダウンメニュー(非常に有用ではない)ドロップダウンの内容を変更

は、テキスト入力カーソルが最初の位置にリセットさせますフィールド。カーソルが最初の位置に強制される前に3文字以上を入力するのは非常に困難です。これは私の知る限りComboBoxのデフォルトの動作です

提案のリストをスクロールするために「下へ」を押すと、ドロップダウンの一番上のエントリがテキストフィールドに置かれます。ユーザーがリターンをクリックしたりクリックしたりしない限り、このようなことは起こりません。

私が望むもの:

ドロップダウン・カーソルの再配置の問題を克服します。 (これ以上のもの)

何も選択することなく矢印キーでスクロールリストをスクロールします。

サーバーが照会される速度を制限します。


私は自分の解決策を用意していますが、現時点ではひどく見えます。

Timerオブジェクトでドロップダウンとクエリのタイミングを処理していますが、実装している間にクエリが実行されないようにしています。ユーザーが入力が速すぎたり、遅すぎる。

ありがとうございました!

+0

自分でajaxリクエストを処理する代わりに、更新パネルを使用していますか? – Adrian

+0

どのようなUI技術を使用していますか?ASP.net、WinForms、WPF、Silverlight、その他何か? – RQDQ

+0

VSがそれを呼び出すとき、それは 'User Task Pane'です。私はWPFとみなします。 – Cat

答えて

1

あなたが欲しいものを正確に理解できても個人的にはComboboxをスキップし、代わりにListViewを使用するとわかりません。クエリの最後に表示される可能性のある非表示のアイテムと、ユーザーが入力できるTextboxがある可能性があります。
Comboboxのようなものを使用しようとしているように感じます。

+0

私はその隠しリストボックスのアプローチを見てきましたが、実装にはいくつかの問題がありました。例えば、時々それをクリックすることができないように。これがうまくいかない場合、私はその方法に戻ります。 – Cat

関連する問題