VB6 KeyDown не в состоянии отменить нажатие клавиши - PullRequest
3 голосов
/ 03 марта 2011

Я пытаюсь определить, когда пользователь нажимает определенные клавиши в текстовом поле, а затем я хочу увеличить или уменьшить значение в тексте в соответствии с его нажатием и отменить нажатие клавиши.Часть отмены не работает.Я привык просто вводить KeyCode = 0, если я хочу отменить их нажатие, как в MS Access.Тем не менее, это не работает для меня в VB6.Знак плюса попадает в текстовое поле.

Есть предложения?

1 Ответ

7 голосов
/ 03 марта 2011

Я бы сказал, игнорировать событие KeyDown и просто использовать событие KeyPress:

Private Sub RTB_KeyPress(KeyAscii As Integer)

    ' "Cancel" the keystroke   
    KeyAscii = 0

End Sub

Однако лучший способ сделать то, что вы делаете, - это установить формуKeyPreview свойство для True, а затем добавьте обработчик для события KeyPress формы - это означает, что форма получает возможность обрабатывать любые нажатия клавиш в первую очередь.Обработав его здесь и отменив, как указано выше, вы можете изменить текст в текстовом поле так, как вам нравится.

Я использовал Visual Basic в течение первых 10 лет своей карьеры, но мне пришлось искать в Google приведенный выше код.Я рекомендую хотя бы перейти на VB.NET - иногда вы даже можете импортировать проекты VB6 в .NET (иногда).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...