Я строю своего рода автозаполнение ввода текста с использованием WinForms ComboBox
, и мне нужно, чтобы поведение автозаполнения менялось в зависимости от положения каретки в строке.
Однако ComboBox
кажется, не выставляет событие, чтобы поймать изменение в позиции каретки.Я могу поймать TextUpdated
, когда пользователь печатает.Но когда пользователь перемещается, мне нужно обработать KeyDown
и проверить, является ли KeyCode
Left
, Right
, Home
или End
.Однако событие происходит до смены каретки, поэтому мне нужно вычислить новую позицию каретки.Это очень раздражает, потому что это требует особой обработки при нажатии Ctrl и, возможно, если есть какие-то специальные настройки специальных возможностей, о которых я не знаю.
Так что мне было интересно, есть ли лучший способ сделать это.Есть ли событие, которое запускается каждый раз, когда каретка меняет положение в ComboBox
, или есть способ, которым я могу выполнить код после того, как событие KeyDown
обработано ComboBox
?