Ragi Gopi Ответов: 6

Хотите использовать текстовое поле только для разрешения ввода числовых данных и обратного пространства


Хотите использовать текстовое поле только для ввода числовых данных

Может ли кто-нибудь помочь мне с кодом для ограничения, кроме цифр и обратного пространства в текстовом поле.

walterhevedeich

Пометьте его. Windows forms или веб-приложение?

Ragi Gopi

Windows Forms

6 Ответов

Рейтинг:
44

CS2011

При нажатии клавиши напишите следующий код

if (char.IsNumber(e.KeyChar))
     e.Handled = false;
else
     e.Handled = true;


RakeshMeena

Мои 5! Хотя вам не нужно ставить обе части If и else.

CS2011

Спасибо.

Tarun.K.S

Здесь я позволю себе не согласиться, иначе* требуется*.

CS2011

А Что Еще ?? :-)

Tarun.K.S

Hahahhaaa! :Д

Tarun.K.S

Хороший ответ Чанакья :). 5+

CS2011

Спасибо

Tarun.K.S

У меня есть одно маленькое сомнение. Если пользователь вставляет какой-либо символ(ы) в текстовое поле(щелкните правой кнопкой мыши на текстовом поле, а затем вставьте), он, к сожалению, показывает этот символ(ы). Есть какие-нибудь предложения, как это можно предотвратить? Спасибо.

CS2011

вы можете отключить опцию Вставить, если хотите :-)

Tarun.K.S

Лол, это единственное решение в поле зрения. :Д

RakeshMeena

Нет! Решения все еще доступны, но немного сложны.
Есть 2 способа вставить текст в текстовое поле:
1. Ctrl + V : это уже отключено (из-за оригинального решения), так что никаких проблем.
2. щелчок правой кнопкой мыши и вставка: здесь мы можем обработать событие MouseDown и, если щелкнуть правой кнопкой мыши, сохранить текст текстового поля в переменной. Затем в событии TextChanged проверьте, содержит ли текст только цифры или нет, если Предыдущее значение не может быть восстановлено.

Надеюсь, это поможет.

Tarun.K.S

Ааа, это вполне осуществимое решение, Спасибо, что предупредили. :)

CS2011

Как сказал Ракеш, Ctrl+V отключен, и если вы добавите
это.текстовое поле textbox1.Контекстное меню = новый контекстное меню();метод InitializeComponent() Тогда ваша проблема решена : -). Смотрите не так уж и тяжело на корме все : - D

Tarun.K.S

Еще одно отличное решение-создать пользовательское контекстное меню и не добавлять в него элементы, которые заставляют его чувствовать себя отключенным. Идеальный. Спасибо! :)

Ragi Gopi

Как мы можем отключить опцию вставки????

CS2011

Ctrl+V уже отключен. Теперь, если вы хотите отключить меню щелчка правой кнопкой мыши (например, копировать, прошлое и т. д.), Добавьте следующий код это.текстовое поле textbox1.Контекстное меню = новый контекстное меню();

Ragi Gopi

частная tbph_MouseClick недействительным(объект отправителя, MouseEventArgs е)
{
это.tbph.Контекстное меню = новый контекстное меню();
}

Есть Анс...
@CS2011
спасибо

Ragi Gopi

спасибо.....
его работа
спасибо вам всем

Ragi Gopi

если ((например.Ключевой-символ &ЛТ; '0' || е.Ключевой-символ &ГТ; '9') &&усилителя; (Эл.Ключевой-символ != '\б'))
{
Ящик для сообщений.Показать ("разрешены только номера");
е.Обработано = истина;
}
ещё
{
е.Обработано = ложь;
}

у атласта все в порядке....

CS2011

Да...иначе backspace не будет работать.Я знал это, но хотел, чтобы ты попробовал сам.доброе дело :-)

Ragi Gopi

:)

Amit Kumar Tiwari

Хороший ответ, мой 5 находится в :)

CS2011

Спасибо Амит

Рейтинг:
2

OriginalGriff

Вы могли бы использовать элемент управления MaskedTextBox[^] с маской "# # # # " - вот для чего она там...


Рейтинг:
2

Amit Kumar Tiwari

Попробуйте статью MSDN @
http://msdn.microsoft.com/en-us/library/ms229644(в=ВС.90).aspx-файл[^]


Рейтинг:
0

Sandeep Mewara

Вам нужен Замаскированное текстовое поле.

Здесь: Маскированный Элемент Управления Текстовым Полем C# [^]

Кроме того, вы также можете реализовать функциональность с помощью OnKeyPress, OnKeyUp или OnBlur (может быть больше событий, выберите любое, которое вам подходит). Когда возникает конкретное событие метода, вы можете проверить наличие нажатой клавиши или текста, присутствующего/введенного, и действовать соответственно - показывать предупреждение/ошибку/пробел.


Рейтинг:
0

Ragi Gopi

private void tbph_TextChanged_1(object sender, EventArgs e)
       {
           tbph.KeyPress += new KeyPressEventHandler(tbph_KeyPress);
       }
       private void tbph_KeyPress(object sender, KeyPressEventArgs e)
       {
           if ((e.KeyChar < '0') || (e.KeyChar > '9')) e.Handled = true;
       }



я попробовал вышеприведенный код ..
и получил ответ...


Tarun.K.S

Как насчет копирования текста, а затем вставки его( щелкнув правой кнопкой мыши, а затем нажмите кнопку Вставить). Появится текст.

Ragi Gopi

оооооо..это проблема.....

Рейтинг:
0

Vijay Radia

функция JavaScript:

function isOnlyNumber(field) {
      var e = event;
      var charCode = e.which || e.keyCode;
      if (charCode > 47 && charCode < 58)
      {
      return true;
      }
      else{
      return false;
      }


Используйте эту функцию в событии TextBox onkeypress, как показано ниже.

<asp:TextBox ID="txt1" runat="server" CssClass="inputbox" onkeypress="return isOnlyNumber(this);"></asp:TextBox>