Числовой TextBox - PullRequest
       40

Числовой TextBox

3 голосов
/ 03 февраля 2009

Я новичок в программировании, и я не очень разбираюсь в этом, но я делаю калькулятор, и я хочу использовать текстовое поле, содержащее только цифры и десятичные числа, и когда пользователь вставляет текст из буфера обмена, текстовое поле удаляет любые литералы символы, такие как MS calc.

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

Спасибо

РЕДАКТИРОВАТЬ: я сделаю это более конкретно:

Как создать числовое текстовое поле в C #? Я использовал замаскированное текстовое поле, но оно не будет принимать десятичные дроби.

Я читал о перегрузке метода OnKeyPress, поэтому он будет исправлять любые неправильные символы, но я не знаю, как это сделать.

Ответы [ 13 ]

0 голосов
/ 03 февраля 2009

Насколько я знаю, в платформе .NET (по крайней мере 2.0) нет ничего родного для этого. Ваши варианты будут:

  1. Создать пользовательский элемент управления, который наследуется от элемента управления textbox и позволяет только числовой ввод. это имеет то преимущество, что контроль можно использовать повторно.
  2. Обработка KeyPress событие и проверьте charCode для разрешения только числового нажатия клавиш. Это проще но намного менее многоразовый.
0 голосов
/ 03 февраля 2009

Исследуйте MaskedTextBox.

Вопрос немного широк, чтобы объяснить все. Постарайтесь сфокусировать вопрос, если вам нужны подробности, потому что вы просите большую часть сообщества «объяснить каждую часть». Если вы зададите несколько конкретных вопросов (и исключите «пожалуйста, объясните время»), вы получите лучшие ответы.

0 голосов
/ 03 февраля 2009

вот как это сделать в vb.net

Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
    Dim reg As New System.Text.RegularExpressions.Regex("[^0-9_ ]")
    TextBox1.Text = reg.Replace(TextBox1.Text, "")
End Sub

просто исправьте регулярное выражение для ваших конкретных потребностей

...