当用户输入数字时自动格式化十进制文本



我想我正在尝试做一些类似于这里描述的事情,但是用不同的语言。

我有一个文本框,允许输入基于十进制的数字。我想消除按小数点键的需要。我将文本框的输入范围设置为"Number",这样用户就可以输入数字和小数。下面是我想看的一个例子:

初始显示:

    0.00

点击数字5:

    0.05

轻按数字8:

    0.58

然后点击3 - 2:

    58.32

如果用户点击删除键:

    5.83

我不知道该怎么做。我认为文本框的默认值是0.00,并在OnKeyDown事件,采取他们的数字,并设置适当的值?

听起来你就快成功了。

 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();

对于退格,我不需要计算数学,只需要去掉最后一个字符的子字符串。

为什么不使用一个MaskedTextBox,像这样的蒙版:00.00,并将rightolleft设置为Yes?我想你能完成你所需要的。

最新更新