UltraComboのフォーカス取得時/喪失時のイベントを取りたい場合は、EnterイベントとLeaveイベントを使ってください。

 

UltraComboは、Windows Forms標準のTextBoxを内包しています。UltraComboがフォーカスを受け取ると、

  1. UltraComboがフォーカスを受け取る。
    • →UltraComboでGotFocusが発生する。
  2. 即座にUltraComboがフォーカスを失う。
    • →UltraComboでLostFocusが発生する。
  3. UltraComboが内包しているTextBoxがフォーカスを取得する。
    • →UltraComboが内包しているTextBoxでGotFocusが発生する。

といったことが起こりますので、UltraComboがフォーカスを受け取ったのにも関わらずGotFocusも発生します。

 

一方で、EnterイベントとLeaveイベントは、一般的なイメージ通り、

  • UltraComboがフォーカスを受け取ったらEnterイベントが発生する。
  • UltraComboがフォーカスを失ったらLeaveイベントが発生する。

となりますので、UltraComboでフォーカスを取り扱いたい場合は、EnterイベントとLeaveイベントを使うと覚えておくとよいです。

 

また、本題から外れますが、Windows Forms開発元のマイクロソフトも、GotFocusやLostFocusではなく、EnterやLeaveを使うべき、というガイダンスを出していますので、参考情報として掲載しておきます。
https://docs.microsoft.com/en-us/dotnet/api/system.windows.forms.control.lostfocus?view=windowsdesktop-6.0

 

サンプル

 

Tagged:

製品について

Ultimate UI for Windows Forms