2016-09-29 18 views
-1

ComboBoxの矢印をクリックすると別のコントロールを開くカスタムComboBoxがあります。 ComboBoxのフォーカスを失ったときに、カスタムコントロールを閉じるために 'LostFocus'イベントハンドラを呼びたいと思います。フォームの背景をクリックするとWinformsがLostFocusイベントを発生しません。

これは、テキストボックスなどの別のコントロールをクリックするとうまくいきますが、フォームの背景をクリックすると起動しません。

通常のコンボボックスをクリックして閉じるときの機能を模倣したいと思います。

+0

なぜなら、別のコントロールに移動するまで、フォーカスが失われていないので、なぜdropdownclosedイベントを使用しないのでしょうか? – BugFinder

+1

これは仕様です。フォーカスが実際に失われたときにのみ、LostFocus(Leaveを優先)を取得できます。ツールボックスには、フォーカスを必要としない多数のコントロールがあります。 PictureBox、Panelなどのように。フォーム。その子コントロールは、カスタムComboBoxのように、フォーカスを取得します。ドロップダウンがこのように動作しない理由は、Captureプロパティを使用することです。マウスがウィンドウの内側にいなくてもマウスイベントを確認できます。 –

+0

私はdropdownclosedを試しましたが、カスタムコントロールとしてドロップダウンを開いていないので、ドロップダウンを無効にしています。私はそれを開いたままにしてみましたが、開いている他のコントロールをクリックする必要があります、ドロップダウンが開いているときに自動的に発生します。背景をクリックしたときに発生するイベントが必要ですが、背景をクリックすると見つかりません。あるいは、ドロップダウンがおそらく閉じられているときと同じものを呼び出すだけでもいいでしょうか? – user3284707

答えて

-1

Formレベルでbool変数を取ると(のGotFocus)イベント. In休暇(のLostFocus)event ofコンボボックス, make it false`のを入力するコンボボックスの間にそれtrueします。

Form MouseClickイベントに登録し、このイベントでは変数boolをチェックしてください。 trueの場合は、コンボボックスのイベントをここに置きます。