如何创建具有十进制值的文本框

本文关键字:十进制 文本 何创建 创建 | 更新日期: 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的内部逻辑过于复杂,以至于你必须检查的情况都很难优雅地处理。所以,与其试图把大炮变成吊带,不如从吊带开始。