カレンダーのドロップダウンが現在WinFormsDateTimePickerに表示されているかどうかを確認する必要があります。DateTimePickerから継承するカスタムコントロールがあり、ナビゲーションキーを処理するためにKeyDownイベントを処理していますが、カレンダーのドロップダウンが開いている場合はそのコードをバイパスして、ユーザーができるようにします。そこでナビゲーションキーを使用します。
ComboBoxコントロールを使用すると、プロパティを使用して開いているかどうかを簡単に.DroppedDown
確認できますが、DateTimePickerにはこのようなプロパティはありません。
私は現在、次のことを行っています。
Private _isDroppedDown As Boolean = False
Private Sub MyDateTimePicker_CloseUp(sender As Object, e As EventArgs) Handles Me.CloseUp
_isDroppedDown = False
End Sub
Private Sub MyDateTimePicker_DropDown(sender As Object, e As EventArgs) Handles Me.DropDown
_isDroppedDown = True
End Sub
ただし、変数を使用して手動で追跡するよりも、コントロールのDroppedDown状態を取得するためのより良い方法があるかどうかを知りたいですか?