автоматически форматировать десятичный текст, когда пользователь вводит числа - PullRequest
1 голос
/ 15 декабря 2011

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

У меня есть текстовое поле, которое позволяет вводить десятичное число.Я хочу устранить необходимость попадания десятичного ключа.У меня в поле ввода для текстового поля установлено значение «Число», поэтому у пользователя есть цифры и десятичная дробь.Вот пример того, что я хотел бы видеть:

Начальное отображение:

  • 0,00

Нажмите число 5:

  • 0,05

Нажмите номер 8:

  • 0,58

Затем нажмите 3 - 2:

  • 58.32

И если пользователь нажимает клавишу удаления:

  • 5.83

Я не уверен, что делатьэтот.Я думаю, что значение текстового поля по умолчанию равно 0,00, а в событии OnKeyDown взять их число и установить соответствующее значение?

Ответы [ 2 ]

1 голос
/ 15 декабря 2011

Почему бы не использовать MaskedTextBox с такой маской: 00.00 и установить для RightToLeft значение Да? Я думаю, что вы можете выполнить только то, что вам нужно.

1 голос
/ 15 декабря 2011

звучит так, как будто ты почти у цели.

 If the key is a digit, 
  float work = float.tryparse(textbox.value )
  work *= 10; // move decimal
  work += key / 100; // move new digit 2 decimals right
  textbox.value = work.ToString();

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...