Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности

Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
|
15.10.2006, 16:18
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
Всем привет! Вопрос уже был задан и не один раз, но нигде я не смог найти нормального простого ответа с примером кода. Как сделать, чтобы в TextBox можно было вводить только цифры и разделитель дробной части '.'? Все ответы, которые были даны на предыдущие похожие вопросы очень громоздкие. На Делфи эта проверка занимает всего две строки в KeyPress: procedure TForm1.TextBoxKeyPress(Sender: TObject; var Key: Char); begin //процедура проверки на ввод данных if not (Key in 8,'0'..'9','.',',',DecimalSeparator) then Key:=#0; if Key='.' then Key:=','; {if Key=#0 then key:='0'; } end; Неужели в C# нет такой же короткой проверки??? Пожалуйста, если можно, пример кода. Заранее, спасибо!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.10.2006, 16:30
|
|||
|---|---|---|---|
Ввод только цифр в textbox |
|||
|
#18+
http://www.gotdotnet.ru/DotNet/FAQ/WindowsForms/RichTextBox/183638.aspx ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.10.2006, 16:37
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
Здравствуйте, S_Sergey, Вы писали: S_S>Всем привет! S_S>Вопрос уже был задан и не один раз, но нигде я не смог найти нормального простого ответа с примером кода. S_S>Как сделать, чтобы в TextBox можно было вводить только цифры и разделитель дробной части '.'? S_S>Все ответы, которые были даны на предыдущие похожие вопросы очень громоздкие. На Делфи эта проверка занимает всего две строки в KeyPress: S_S>procedure TForm1.TextBoxKeyPress(Sender: TObject; var Key: Char); S_S>begin //процедура проверки на ввод данных S_S>if not (Key in 8,'0'..'9','.',',',DecimalSeparator) then Key:=#0; S_S>if Key='.' then Key:=','; S_S>{if Key=#0 then key:='0'; S_S>} S_S>end; S_S>Неужели в C# нет такой же короткой проверки??? S_S>Пожалуйста, если можно, пример кода. S_S>Заранее, спасибо!!! Если нужна серверная обработка, то проще использовать регулярные выражения. А на клиенте сложнее, надо отлавливать событие onkeypress. Но это не защитит от всех бед, потому как "не-цифры" можно вставить из буфера или заполнить скриптом. С вставкой проще — нужно onpaste отлавливать, а вот с последней проблемой не знаю как бороться :xz: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.10.2006, 17:17
|
|||
|---|---|---|---|
Ввод только цифр в textbox |
|||
|
#18+
упс...сорри не посмотрел на то что имя раздела ASP.NET... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
15.10.2006, 17:31
|
|||
|---|---|---|---|
Ввод только цифр в textbox |
|||
|
#18+
S_SergeyВсем привет! Вопрос уже был задан и не один раз, но нигде я не смог найти нормального простого ответа с примером кода. Как сделать, чтобы в TextBox можно было вводить только цифры и разделитель дробной части '.'? Все ответы, которые были даны на предыдущие похожие вопросы очень громоздкие. На Делфи эта проверка занимает всего две строки в KeyPress: procedure TForm1.TextBoxKeyPress(Sender: TObject; var Key: Char); begin //процедура проверки на ввод данных if not (Key in 8,'0'..'9','.',',',DecimalSeparator) then Key:=#0; if Key='.' then Key:=','; {if Key=#0 then key:='0'; } end; Неужели в C# нет такой же короткой проверки??? Пожалуйста, если можно, пример кода. Заранее, спасибо!!! Где должна быть осуществленна проверка? На клиенте или сервере. Если на сервере то проверяешь каждый символ в текст боксе перед обработкой, если на клиенте, то можно использовать или свой написанный яваскрипт, опять же все зависит от алгоритма проверки в нем, но он не особо сложный, либо использовать валидаторы. В валидаторе можно задать регулярное выражение и все. если не ошибась, то это меньше трех стор кода ) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 08:27
|
|||
|---|---|---|---|
Ввод только цифр в textbox |
|||
|
#18+
Здравствуйте, Alexey Ivanov, Вы писали: AI>Здравствуйте, S_Sergey, Вы писали: S_S>>Всем привет! S_S>>Вопрос уже был задан и не один раз, но нигде я не смог найти нормального простого ответа с примером кода. S_S>>Как сделать, чтобы в TextBox можно было вводить только цифры и разделитель дробной части '.'? S_S>>Все ответы, которые были даны на предыдущие похожие вопросы очень громоздкие. На Делфи эта проверка занимает всего две строки в KeyPress: S_S>>procedure TForm1.TextBoxKeyPress(Sender: TObject; var Key: Char); S_S>>begin //процедура проверки на ввод данных S_S>>if not (Key in 8,'0'..'9','.',',',DecimalSeparator) then Key:=#0; S_S>>if Key='.' then Key:=','; S_S>>{if Key=#0 then key:='0'; S_S>>} S_S>>end; S_S>>Неужели в C# нет такой же короткой проверки??? S_S>>Пожалуйста, если можно, пример кода. S_S>>Заранее, спасибо!!! AI>Если нужна серверная обработка, то проще использовать регулярные выражения. А на клиенте сложнее, надо отлавливать событие onkeypress. Но это не защитит от всех бед, потому как "не-цифры" можно вставить из буфера или заполнить скриптом. С вставкой проще — нужно onpaste отлавливать, а вот с последней проблемой не знаю как бороться :xz: Со второй бедой не нужно бороться — достаточно делать проверку на сервере. Очень редкий пользователь долетит самостоятельно до середины Днепра и сможет заполнить поля ввода скриптом. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 09:10
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
Не мог бы кто-нибудь пример кода на событие OnKeyPress выложить. Я недавно программирую на C# поэтому возникают проблемы. Повторюсь, что нужно сделать так, чтобы можно было вводить только цифры и разделитель дробной части ".". Спасибо!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 10:07
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
private void textBox1_KeyPress(object sender, KeyPressEventArgs e) { if (!(char.IsDigit(e.KeyChar) || char.IsControl(e.KeyChar) || e.KeyChar=='.' )) e.Handled = true; } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 10:27
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
// Boolean flag used to determine when a character other than a number is entered. private bool nonNumberEntered = false; // Handle the KeyDown event to determine the type of character entered into the control. private void tbCode_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e) { // Initialize the flag to false. nonNumberEntered = false; // Determine whether the keystroke is a number from the top of the // keyboard. if (e.KeyCode < Keys.D0 || e.KeyCode > Keys.D9) { // Determine whether the keystroke is a number from the keypad. if (e.KeyCode < Keys.NumPad0 || e.KeyCode > Keys.NumPad9) { // Determine whether the keystroke is a backspace. if(e.KeyCode != Keys.Back) { // A non-numerical keystroke was pressed. // Set the flag to true and evaluate in KeyPress event. nonNumberEntered = true; } } } } // This event occurs after the KeyDown event and can be used to prevent // characters from entering the control. private void tbCode_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { // Check for the flag being set in the KeyDown event. if (nonNumberEntered == true) { // Stop the character from being entered into the control since it is non-numerical. e.Handled = true; } } ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 10:46
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
В KeyDown можно перехватить Shift+Insert ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 10:58
|
|||
|---|---|---|---|
Ввод только цифр в textbox |
|||
|
#18+
лучший метод - регулярные выражения, есть контрол, могу прислать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 12:46
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
Здравствуйте, Аноним, Вы писали: S_S>>>Как сделать, чтобы в TextBox можно было вводить только цифры и разделитель дробной части '.'? AI>>Если нужна серверная обработка, то проще использовать регулярные выражения. А на клиенте сложнее, надо отлавливать событие onkeypress. Но это не защитит от всех бед, потому как "не-цифры" можно вставить из буфера или заполнить скриптом. С вставкой проще — нужно onpaste отлавливать, а вот с последней проблемой не знаю как бороться :xz: А>Со второй бедой не нужно бороться — достаточно делать проверку на сервере. Очень редкий пользователь долетит самостоятельно до середины Днепра и сможет заполнить поля ввода скриптом. Извините уважаемый, но выделенное можно реализовать только на клиентской стороне :no: ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 14:15
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
Здравствуйте, S_Sergey, Вы писали: S_S>Все ответы, которые были даны на предыдущие похожие вопросы очень громоздкие. Хорошо было бы указать, какие решения вы видели и они вам не подошли. S_S>На Делфи эта проверка занимает всего две строки в KeyPress: S_S>Неужели в C# нет такой же короткой проверки??? Меня терзают смутные сомнения, что вас интересует не ASP.NET, а WinForms. Если это так, то все делается аналогично Delphi: private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e) { if (e.KeyCode /* проверяется на недопустимый символ */) { // Stop the character from being entered into the control since it is non-numerical. e.Handled = true; } } В случае ASP.NET нужно написать на скрипте и указать TextBox'у обработчик onkeypress. Можно было бы использовать ActiveX контрол типа MaskedEdit, но возни будет еще больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|
16.10.2006, 15:43
|
|||
|---|---|---|---|
|
|||
Ввод только цифр в textbox |
|||
|
#18+
Здравствуйте, S_Sergey, Вы писали: S_S>Как сделать, чтобы в TextBox можно было вводить только цифры и разделитель дробной части '.'? В очередной раз отвечаю: не надо так делать. Это мешает пользователю и не помогает программисту Надо: а) дать пользователю ввести все, что он хочет б) показать ему, что он ввел неправильно Для конкретно твоего примера все, что нужно — это приаттачить к текстбоксу валидатор и сказать, что нужен флоат. 1.1.4 stable rev. 510 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
|
|
|

start [/forum/topic.php?fid=18&mobile=1&tid=1388567]: |
0ms |
get settings: |
9ms |
get forum list: |
10ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
44ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
36ms |
get tp. blocked users: |
1ms |
| others: | 250ms |
| total: | 364ms |

| 0 / 0 |
