Предотвратить нажатие точка дважды клавишу при вводе суммы, рисунок-это вид управления DataGrid
Во втором столбце datagrid для ввода суммы я хочу запретить пользователю вводить". "точка или минус" - " дважды . Мой приведенный ниже код не работает при наборе текста . Но когда я выхожу и снова пытаюсь редактировать, это работает.
Private Sub CsubValidateKeyPress(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) If Asc(e.KeyChar) >= 48 And Asc(e.KeyChar) <= 57 Or Asc(e.KeyChar) = 8 Or Asc(e.KeyChar) = 13 Or Asc(e.KeyChar) = 46 Or Asc(e.KeyChar) = 45 Then Else e.Handled = True End If ' MsgBox(str) If Len(str) > 0 Then If Asc(e.KeyChar) = 46 Then If str.Contains(".") Then e.Handled = True End If End If End If '' End Sub
Что я уже пробовал:
Я попробовал ниже код
Private Sub CsubValidateKeyPress(ByVal sender As System.Объект, бывал е как система.Окна.Формы.KeyPressEventArgs)
Если на ASC(электронный.Ключевой-символ) &ГТ;= 48 и ASC(электронный.Ключевой-символ) &ЛТ;= 57 или АСК(электронная.Ключевой-символ) = 8 или АСК(электронная.Ключевой-символ) = 13 или АСК(электронная.Ключевой-символ) = 46 или АСК(электронная.Ключевой-Символ) = 45 Тогда
Ещё
е.Обработано = Истина
Конец, Если
'MsgBox(str)
Если Len (str) > 0, то
Если Asc (e.KeyChar) = 46, то
Если ул.Содержит ("."), То
е.Обработано = Истина
Конец, Если
Конец, Если
Конец, Если
''
Конец Подводной Лодки
Richard MacCutchan
Почему бы не сбросить этот код, позволить пользователю ввести все, что он хочет, а затем проверить ввод, когда он перестанет печатать?
Richard Deeming
Кажется, вы упускаете какой-то код. Где str
определено, и как оно обновляется?
pravin9455
именно код доза не захватывает текст при вводе текста, а str не обновляется при каждом нажатии клавиши . я не мог понять, как это сделать или какое другое событие использовать.. str нужно обновлять каждый раз, когда нажимается клавиша.