Задача: сделать так, чтобы при нажатии на цифровые клавиши в любом месте формы (фокус м.б. на любом элементе) фокус передавался в цифровой текстбокс и цифры вводились в него.
Все это сделано так: у формы ставим Keypreview в true, вылавливаем нажатие клавиш, переключаем фокус на текстбокс, SendKey-ем посылаем нажатие цифры. Загвоздка вот в чем: если быстро нажать, скажем, 4 затем 5, то 4 пропечатывается, а 5 нет. Если подождать с полсекунды и больше, то все ок. В чем м.б. загвоздка?
- Код: Выделить всё
Private Sub Form_KeyUp(KeyCode As Integer, Shift As Integer)
If KeyCode >= vbKey0 And KeyCode <= vbKey9 Then
If Me.ActiveControl.Name <> "txtComments" And Me.ActiveControl.Name <> "txtNumber" Then
txtNumber.SetFocus
Call SendKeys(Chr$(KeyCode))
End If
End If
End Sub