UltraComboのフォーカス取得時/喪失時のイベントを取りたい場合は、EnterイベントとLeaveイベントを使ってください。
UltraComboは、Windows Forms標準のTextBoxを内包しています。UltraComboがフォーカスを受け取ると、
- UltraComboがフォーカスを受け取る。
- →UltraComboでGotFocusが発生する。
- 即座にUltraComboがフォーカスを失う。
- →UltraComboでLostFocusが発生する。
- 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
サンプル