如何创建具有十进制值的文本框
本文关键字:十进制 文本 何创建 创建 | 更新日期: 2023-09-27 18:29:42
我需要在我的应用程序中添加一个文本框,它开始显示值0.00
,就像ATM一样,当你键入数字时,它会保留两个小数点,直到对值满意为止,例如,1023.00
值的结束顺序将是(当我键入时)
0.01
0.10
1.02
10.23
102.30
1023.00
这可以在windows窗体应用程序中实现吗?。我只是不知道该怎么做。非常感谢。
在这种情况下,我不会使用文本框,而是使用标签或只读文本框。要获得用户输入,只需在表单上使用按键事件(你也必须在表单上启用KeyPreview)-然后只需记住按下的键/数字并输出你想要的格式-应该是一个相当简单的算法(Char.IsNumber和String.format可能派上用场):
private int _inputNumber = 0;
private void Form_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)
{
if (!Char.IsNumber(e.KeyChar)) return;
_inputNumber = 10*_inputNumber + Int32.Parse(e.KeyChar.ToString());
ReformatOutput();
}
private void ReformatOutput()
{
myOutput.Text = String.Format("{0:0.00}", (double)_inputNumber / 100.0);
}
注意:为什么不使用文本框呢?因为select/replace/remove/type的内部逻辑过于复杂,以至于你必须检查的情况都很难优雅地处理。所以,与其试图把大炮变成吊带,不如从吊带开始。