Создание текстового поля для цифровых значений - C#

Узнай цену своей работы

Формулировка задачи:

Visual C#. Проект для Smart device (Windows CE) Нужно создать пользовательский элемент управления, производный от TextBox, так что он будет принимать только числовой ввод. Взял пример отсюда: http://msdn.microsoft.com/ru-ru/libr...code-snippet-1. Зашибись. Дальше надо сделать, чтобы после ввода первой цифры автоматически добавлялась десятичная точка. Сделал так:
protected override void OnKeyPress(KeyPressEventArgs e)
{
    if (Char.IsDigit(e.KeyChar))
     {   // Digits are OK
          if (this.Text.Length == 0)
             { 
                this.Text += decimalSeparator;                
              }
 
       }
}
Точка добавляется, но курсор остается перед ней. Теперь надо передвинуть курсор в конец, чтобы вводить следующие цифры, например, так:
this.SelectionStart = 2;
this.SelectionLength = 0;
И тут начинается лажа. Десятичная точка перемещается на первую позицию, а цифра становится после нее. Как это побороть?

Решение задачи: «Создание текстового поля для цифровых значений»

textual
Листинг программы
else
   e.Handled = true;

ИИ поможет Вам:


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

Оцени полезность:

12   голосов , оценка 4.167 из 5
Похожие ответы