Запрет ввода букв с FlexGrid - VB
Формулировка задачи:
Помогите, пожалуйста, исправить код, чтобы в FlexGrid вводились ТОЛЬКО ЦИФРЫ(целые и вещественные)Или может у кого-нибудь есть другой код...
Листинг программы
- Private Sub FlxGrdDemo_KeyPress(KeyAscii As Integer)
- Select Case KeyAscii
- Case vbKeyReturn
- ' Когда пользователь нажимает Enter
- ' то курсор перепрыгивает на следующую
- ' ячейку или строку.
- With FlxGrdDemo
- If .Col + 1 <= .Cols - 1 Then
- .Col = .Col + 1
- ElseIf .Row + 1 <= .Rows - 1 Then
- .Row = .Row + 1
- .Col = 0
- Else
- .Row = 1
- .Col = 0
- End If
- End With
- Case vbKeyBack
- ' Удаляем предыдущий символ при
- ' нажатии клавиши backspace.
- With FlxGrdDemo
- If Trim(.Text) <> "" Then _
- .Text = Mid(.Text, 1, Len(.Text) - 1)
- End With
- Case Is < 32
- ' Избегаем непечатаемых символов.
- Case Else 'Иначе печатаем всё остальное
- With FlxGrdDemo
- .Text = .Text & Chr(KeyAscii)
- End With
- End Select
- End Sub
- Private Sub FlxGrdDemo_KeyUp(KeyCode As _
- Integer, Shift As Integer)
- Select Case KeyCode
- ' Copy
- Case vbKeyC And Shift = 2 ' Control + C
- Clipboard.Clear
- Clipboard.SetText FlxGrdDemo.Text
- KeyCode = 0
- ' Paste
- Case vbKeyV And Shift = 2 'Control + V
- FlxGrdDemo.Text = Clipboard.GetText
- KeyCode = 0
- ' Cut
- Case vbKeyX And Shift = 2 'Control + X
- Clipboard.Clear
- Clipboard.SetText FlxGrdDemo.Text
- FlxGrdDemo.Text = ""
- KeyCode = 0
- ' Delete
- Case vbKeyDelete
- FlxGrdDemo.Text = ""
- End Select
- End Sub
Решение задачи: «Запрет ввода букв с FlexGrid»
textual
Листинг программы
- Case Else 'Иначе печатаем всё остальное
- KeyAscii = IIf(InStr(1, "-0123456789.", Chr(KeyAscii)) > 0, KeyAscii, 0)
- With FlxGrdDemo
- If InStr(1, .Text, ".") > 0 And Chr(KeyAscii) = "." Then KeyAscii = 0
- If InStr(1, .Text, "-") > 0 And Chr(KeyAscii) = "-" Then KeyAscii = 0
- .Text = .Text & Chr(KeyAscii)
- End With
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д