#vb.net #winforms #textbox
#vb.net #winforms #текстовое поле
Вопрос:
Как заставить текстовое поле принимать только цифровые символы (0-9)? и выдавать сообщение об ошибке, если оно содержит какие-либо алфавиты или символы.
Ответ №1:
Вы могли бы перехватить событие, KeyDown
и проверить, e.KeyCode
является ли оно числовым или нет, и отбросить его, если хотите.
Еще одна вещь, которую вы могли бы попробовать, это использовать IsNumeric(txt.Text)
.
Ответ №2:
Эта MSDN
статья поможет вам:
Ответ №3:
Вы могли бы использовать регулярное выражение что-то вроде: ^(d{0,11})(.d{0,2})?$ Это позволит использовать 0-11 цифр слева от десятичной дроби и 0-2 цифры справа от десятичной дроби.
Если у вас есть элементы управления Ajax, вы могли бы использовать расширитель текстового поля с фильтром <cc1:FilteredTextBoxExtender id="FilteredTextBoxExtender8" runat="server" TargetControlID="YourTextBox" FilterType="Custom,Numbers" ValidChars="." >
</cc1:FilteredTextBoxExtender>
Или вы также могли бы попробовать подход Марко.
Комментарии:
1. Также как я могу разрешить пользователю вводить символы и —
2. @Failed_Noob вы используете Visual Studio? Если да, то какая версия? Если нет … тогда как вы создаете Winform?? Попробуйте взглянуть на эту ссылку msdn.microsoft.com/en-us/library/ms996428.aspx
3. Затемнить myRegEx как новое System.Text.RegularExpressions.Regex(«^(d{0,11})(.d{0,2})? $») Если myRegEx. IsMatch(YourTextBox.text) Тогда ‘Нормально и разрешить текст, который был введен иначе’ не подходит. затем отобразите сообщение об ошибке, в котором указаны числа только с 2 десятичными знаками и ‘-‘ или ‘ ‘. Завершить, если
4. На панели инструментов в разделе проверка перетащите regularexpressionvalidator в вашу форму. в свойствах этого элемента управления вы можете выбрать элемент управления для проверки: Ваше текстовое поле. Установите для отображения значение Static, Dynamic, None. добавьте выражение проверки:^(d{0,11})(.d{0,2})?$. Установите сообщение об ошибке: Это поле не может быть длиннее 11 цифр и 2 знаков после запятой. и т.д. Ваша разметка должна выглядеть следующим образом:
5.
<asp:RegularExpressionValidator ID="RegularExpressionValidator1" runat="server" ControlToValidate="YourTestBox" Display="Dynamic" ErrorMessage="RegularExpressionValidator" ValidationExpression="^(d{0,11})(.d{0,2})?$ SetFocusOnError="True""></asp:RegularExpressionValidator>
Чтобы протестировать reg. выражение просто добавьте текст в текстовое поле и уберите фокус с текстового поля. Должно появиться сообщение об ошибке. Чтобы разрешить пользователю вводить символы и -, я думаю, синтаксис для регулярного выражения либо:^([ -]?d{0,11})(.d{0,2})?$ ИЛИ ^[ -]?(d{0,11})(.d{0,2})?$. Я думаю, что первое правильно.
Ответ №4:
Как насчет того, что это позволит использовать только числовые данные и свободное пространство
При Keypress
событии
if ((!char.IsNumber(e.KeyChar)) amp;amp; !(e.KeyChar == (char)Keys.Back))
{
e.Handled = true;
}
Ответ №5:
Здесь я с помощью текстового поля pincode ввожу pin-код и идентификатор как txtPinCode
вы просто пишете поверх кода в разделе document функция запускается, давайте запишем этот код и проверим один раз
$(«#<%=txtPincode.ClientID%>»).numeric();
спасибо akreddy
Ответ №6:
If Asc(e.KeyChar) <> 13 AndAlso Asc(e.KeyChar) <> 8 AndAlso Not IsNumeric(e.KeyChar) Then
MessageBox.Show("Please enter numbers only")
e.Handled = True
End If