2012-02-10 8 views
0

コンボボックスがあります。選択した項目をリストの先頭に設定します。そのアイテムをクリックしたいユーザーがマウスを動かす必要がないように、マウスポインターを移動してそのポインターをポイントしたいと思います。私は、ポインタを移動する方法を見つけることは、このコマンドを使用することです:コンボボックス内の選択した項目にマウスポインタの位置を設定します。

Windows.Forms.Cursor.Position = New System.Drawing.Point(x,y) 

が、私はコンボボックスで選択した項目の位置を取得する方法を知っておく必要があります。

+0

ユーザーのためにマウスを動かすことは、多くのユーザーにとっては珍しいことではありません。 –

+0

ええ、その理由は、彼らがリストの一番上にある項目をクリックする時間の99%です。これはコンボの下ボタンからかなりの距離です。リストを上にせずに下に置くことができれば、これは問題にはなりませんが、私のコンボボックスは画面の一番下にあります。 – Lukasz

+0

また、リストをドロップダウンする必要がないように、その項目をデフォルトの選択項目にすることも考えられます。 –

答えて

0

旅行サイト上で目的地を検索するとき、彼らはしばしば目的地のソートされたリストを提示したが、2-3で最も一般的なを持っています最初にリストに複製された宛先。そうすれば、あなたは両方とも標準的な行動に従うことができ、エンドユーザーにとっての生活が容易になります。

コンボボックスの最後にクイックリストを追加して、最も使用されているアイテムを追加して、マウスを数ミリメートル以上動かすことなく簡単に選択することができます。ソートされたリストは、ユーザーが他のものを選択したい場合は上になります。プログラムが開始すると、最後の項目を選択したものに設定します( "Select destination" -item)。

は(そして、私は、これは、ユーザーが、自身で動き回ると、顧客が心の変化を持っていることを願っていないmousepointersを期待するものである顧客に説明するだろう。)このよう

enter image description here

+1

コメントありがとうございました。私は、データセット全体のソート順を逆にすることは容認できる解決策であると私のクライアントに説得することができました。 – Lukasz

0

最初のアイテムがコンボから離れすぎているという問題がある場合は、アイテムの順序を逆転できませんか?最初の最もクリックされたアイテムが最後のアイテムになり、そのためにコンボに非常に近いものになります。たぶん、空のアイテムを最もクリックしたアイテムと他のアイテムの間に挿入して目立たせることもできます。

UPDATEが1
ので、コントロールが標準Winフォームのコンボボックスがある場合、あなたはプロパティItemHeightの値をチェックしてみてください、その後、ドロップダウン内のアイテムの数によって、この値を掛けることができ、これは与えるべきですあなたはドロップダウンの拳の項目の位置。
この値を使用すると、マウスカーソルをどこに置くかを計算できます。

警告:

  • あなたは(ItemHeightプロパティは読み取り専用である、とに結合され、それは別のフォント/フォントサイズで正しく動作するかどうかをテストする必要があり、これは、すべてのコンピュータ
  • に動作するかどうかをチェックする必要があります
  • システムのフォントサイズの倍率(120dpi 125%/ 150%)を変更すると、何が起きるか試してみてください.WinXPとWin7はこのパラメータを異なる方法で扱います。
  • オンスクリーンのすべての項目のための十分なスペースがあります数よりもドロップダウン
  • MaxDropDownItemsを持つようにドロップダウンを設定>ドロップダウンリストで
+0

確かに、カーソルを移動する別の好ましいオプション。 –

+0

アイテムは、理由により昇順でソートされます。クライアントはそれを変更したくありません。マウスポインタがジャンプするのは彼の要求です。私はちょうど準拠しています。 – Lukasz

+0

これは正しく機能しません。あまりにも多くの問題があります。このコードでは、あまりにも多くの前提を設定する必要があり、その前提はあまりにもまれです。クライアントの要求に応えるのは確かです。しかし、彼らが提案していることが悪い考えであるか、そして/またはうまくいかない理由をクライアントに説明することは、プログラマー(つまり*専門家*)としてのあなたの仕事です。適切な選択肢を提案することもあなたの仕事です。彼らが注意点と限界をすべて理解していれば、彼らはあなたを必要としませんでした。彼らはソフトウェア自体を書くだけだった。 –