Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 48 Or KeyAscii = 49 Or KeyAscii = 50 Or KeyAscii = 51 Or KeyAscii = 52 Or KeyAscii = 53 Or KeyAscii = 54 Or KeyAscii = 55 Or KeyAscii = 56 Or KeyAscii = 57 Or KeyAscii = 8 Or KeyAscii = 13 Or _
KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = 0
End If
End Sub
RayShade писал(а):Во первых, надо, обрабатывать keyup а не keydown - потому что это идеологически неверно
Amed писал(а):
- Код: Выделить всё
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 48 Or KeyAscii = 49 Or KeyAscii = 50 Or KeyAscii = 51 Or KeyAscii = 52 Or KeyAscii = 53 Or KeyAscii = 54 Or KeyAscii = 55 Or KeyAscii = 56 Or KeyAscii = 57 Or KeyAscii = 8 Or KeyAscii = 13 Or _
KeyAscii = 44 Or KeyAscii = 46 Then
KeyAscii = 0
End If
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
Select Case KeyAscii
Case 8, 13, 44, 46, 48 To 57: KeyAscii = 0
End Select
End Sub
RayShade писал(а):Человек ожидает реакции, при отпускании клавиши
Потому что, для него - завершение действия это, отпущенная клавиша.
RayShade писал(а):Конь
Нет. Во время ее отпускания. Проверь
Option Explicit
Private Sub Text1_KeyDown(KeyCode As Integer, Shift As Integer)
Label1.Tag = CLng(Label1.Tag) + 1
Label1.Caption = " Кейдауны: " & Label1.Tag
End Sub
Private Sub Text1_KeyUp(KeyCode As Integer, Shift As Integer)
Label2.Tag = CLng(Label2.Tag) + 1
Label2.Caption = " Кейапы: " & Label2.Tag
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If InStr("\/:*?<>|" + Chr(34), Chr(KeyAscii)) <> 0 Then KeyAscii = 0
End Sub
Private Const numbers As String = "1234567890"
Private Sub Text2_KeyPress(keyascii As Integer)
If InStr(1, numbers & Chr(8), Chr(keyascii), vbTextCompare) = 0 Then keyascii = 0
End Sub
SetWindowLong( Text1.hWnd, GWL_STYLE, GetWindowLong( Text1.hWnd, GWL_STYLE ) Or ES_NUMBER )
Сейчас этот форум просматривают: Bing-бот, Google-бот, Majestic-12 [Bot] и гости: 120