Запрет ввода букв с FlexGrid - VB

Узнай цену своей работы

Формулировка задачи:

Помогите, пожалуйста, исправить код, чтобы в FlexGrid вводились ТОЛЬКО ЦИФРЫ(целые и вещественные)Или может у кого-нибудь есть другой код...
Листинг программы
  1. Private Sub FlxGrdDemo_KeyPress(KeyAscii As Integer)
  2. Select Case KeyAscii
  3. Case vbKeyReturn
  4. ' Когда пользователь нажимает Enter
  5. ' то курсор перепрыгивает на следующую
  6. ' ячейку или строку.
  7. With FlxGrdDemo
  8. If .Col + 1 <= .Cols - 1 Then
  9. .Col = .Col + 1
  10. ElseIf .Row + 1 <= .Rows - 1 Then
  11. .Row = .Row + 1
  12. .Col = 0
  13. Else
  14. .Row = 1
  15. .Col = 0
  16. End If
  17. End With
  18. Case vbKeyBack
  19. ' Удаляем предыдущий символ при
  20. ' нажатии клавиши backspace.
  21. With FlxGrdDemo
  22. If Trim(.Text) <> "" Then _
  23. .Text = Mid(.Text, 1, Len(.Text) - 1)
  24. End With
  25. Case Is < 32
  26. ' Избегаем непечатаемых символов.
  27. Case Else 'Иначе печатаем всё остальное
  28. With FlxGrdDemo
  29. .Text = .Text & Chr(KeyAscii)
  30. End With
  31. End Select
  32. End Sub
  33. Private Sub FlxGrdDemo_KeyUp(KeyCode As _
  34. Integer, Shift As Integer)
  35. Select Case KeyCode
  36. ' Copy
  37. Case vbKeyC And Shift = 2 ' Control + C
  38. Clipboard.Clear
  39. Clipboard.SetText FlxGrdDemo.Text
  40. KeyCode = 0
  41. ' Paste
  42. Case vbKeyV And Shift = 2 'Control + V
  43. FlxGrdDemo.Text = Clipboard.GetText
  44. KeyCode = 0
  45. ' Cut
  46. Case vbKeyX And Shift = 2 'Control + X
  47. Clipboard.Clear
  48. Clipboard.SetText FlxGrdDemo.Text
  49. FlxGrdDemo.Text = ""
  50. KeyCode = 0
  51. ' Delete
  52. Case vbKeyDelete
  53. FlxGrdDemo.Text = ""
  54. End Select
  55. End Sub

Решение задачи: «Запрет ввода букв с FlexGrid»

textual
Листинг программы
  1. Case Else 'Иначе печатаем всё остальное
  2.        KeyAscii = IIf(InStr(1, "-0123456789.", Chr(KeyAscii)) > 0, KeyAscii, 0)
  3.             With FlxGrdDemo
  4.             If InStr(1, .Text, ".") > 0 And Chr(KeyAscii) = "." Then KeyAscii = 0
  5.             If InStr(1, .Text, "-") > 0 And Chr(KeyAscii) = "-" Then KeyAscii = 0
  6.                 .Text = .Text & Chr(KeyAscii)
  7.             End With

ИИ поможет Вам:


  • решить любую задачу по программированию
  • объяснить код
  • расставить комментарии в коде
  • и т.д
Попробуйте бесплатно

Оцени полезность:

11   голосов , оценка 3.818 из 5

Нужна аналогичная работа?

Оформи быстрый заказ и узнай стоимость

Бесплатно
Оформите заказ и авторы начнут откликаться уже через 10 минут
Похожие ответы