コンボボックスは、予想どおりキーボードやマウスのイベントを上げません

StackOverflow https://stackoverflow.com/questions/6335405

質問

Silverlight 4.0を使用しており、Combobox Controlに問題があります。マウスをクリックせずに自分自身を表示して隠すポップアップメニューを実装したいと思います。私がその地域にカーソルを置くときに示すはずです - このPRTはうまく機能します。その後、マウスポインターがしばらくの間その地域の外側に配置されるたびに隠す必要があります。 MouseenterとMouseleaveイベントで実装しました。 私の問題はコンボボックスです - 私の意見では、このコントロールは奇妙に動作します。通常、カーソルを置いたときにマウスエンターイベントを上げて、マウスカーソルを他の場所に置いたときにムーセリーブすることを期待します。実際の状況は異なります。コンボボックスをクリックすると、オプションのリストが開き、すぐにlostfocusおよびmouseleaveイベントを送信します。そのため、コントロールがキーボードのフォーカスを失い、マウスポインターがその地域から移動したように見えますが、実際にはオプションのコンボボックスリストはオープンでアクティブであり、キーボードフォーカスがあります。

問題は、コンボボックスで何が起こっているのかを自分のプログラムでどうやって知ることができるかということです。 ポップアップメニューを正しく非表示にするには、コンボボックス内のオプションのリストがいつ開いているか閉じているかを知る必要があります。このドキュメントやその他のドキュメントのイベントは表示されません。 (必要な動作は次のとおりです。コンボボックスが閉じられている場合、マウスカーソルの位置に基づいてポップアップメニューを非表示にします。コンボボックスが開いている場合、ユーザーがコンボボックスで何かを選択するか、コンボボックスを閉じるまでポップアップメニューを非表示にしません。 ))

また、サードパーティのコンボボックスの交換品で良い経験をしている場合は、同様に見た目と機能し、必要なイベントを提起してください。お知らせください。

役に立ちましたか?

解決

MSDNには、コンボボックス用の2つのイベントがリストされています。

http://msdn.microsoft.com/en-us/library/system.windows.controls.combobox_events(v=vs.95).aspx

ドロップダウンクロップは、コンボボックスのドロップダウン部分が閉じると発生します。
コンボボックスのドロップダウン部分が開いたときに、ドロップダウン開始が発生します。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top