У меня есть пользовательский элемент управления MyLookUpEdit, он наследует Devexpress LookUpEdit.
В MyLookUpEdit у меня есть метод ниже:
protected override bool ProcessDialogKey(Keys keyData)
Я использую этот пользовательский элемент управления (давайте назовем его nameLookUpEdit) наформа.Когда я перемещаюсь по элементу управления, я вижу, что ProcessDialogKey вызывается, и он фокусируется на следующем элементе управления в соответствии с tabIndex.
Теперь мы надеемся, что при нажатии Enter наш элемент управления может вести себя точно так же, как нажатая вкладка.Я думаю, что я должен добавить в MyLookUpEdit один из этих методов:
protected override void OnKeyDown(KeyEventArgs e)
или
protected override void OnEditorKeyDown(KeyEventArgs e)
и захватить ключ ввода и, следовательно, явно вызвать ProcessDialogKey:
{
if(e.KeyData == Keys.Enter)
{
ProcessDialogKey(Keys.Tab);
}
base....
}
Но когда я тестирую его, я нахожу, что nameLookUpEdit в данный момент сфокусирован, я нажимаю клавишу ввода, и не вызывается ни onKeyDown, ни onEditorKeyDown.
Почему это происходит?
И что такоеправильно ли ввести поведение так же, как вкладка?