Member 13898600 Ответов: 1

Как отключить клавишу ввода при нажатии любой кнопки


я сделал (0~9)кнопок, так как хочу нажать на кнопку (вместо того, чтобы нажимать ее на клавиатуре )
пример: я нажимаю на btn5, а затем textbox1.text &="5"
но когда я нажимаю на любую кнопку, то нажимаю на клавишу enter (кнопка будет нажата автоматически и то, чего я не хочу )

Что я уже пробовал:

я пытался писать на текстовом поле, просто нажимая на кнопки без использования каких-либо клавиш (на клавиатуре)

Patrice T

Потому что ваш секретный код неверен и вам нужно применить секретную коррекцию.

1 Ответов

Рейтинг:
2

OriginalGriff

Вы действительно не должны этого делать - это стандартное и ожидаемое поведение для windows, и вы связываетесь с этим на свой страх и риск. Пользователи знают, что ENTER активирует кнопку, и если вы не укажете кнопку, чтобы "принять" ввод, то текущий сфокусированный элемент управления получит его.

Лучшим решением было бы заставить ENTER нажать кнопку "равно", что очень просто сделать.
В вашем варианте, переопределение метода processcmdkey:

Protected Overrides Function ProcessCmdKey(ByRef msg As Message, ByVal keyData As Keys) As Boolean
    If keyData = Keys.Enter Then
        buttonEquals.PerformClick()
        Return True
    End If

    Return MyBase.ProcessCmdKey(msg, keyData)
End Function