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

C# 如何创建具有十进制值的文本框,c#,winforms,C#,Winforms,我需要在我的应用程序中添加一个文本框,该文本框以值0.00开始显示,就像ATM一样,当您键入数字时,它会保留两个小数点,直到对值满意为止,例如1023.00值的结束顺序将是(当我键入时) 在windows窗体应用程序中是否可以执行此操作?。我只是不知道该怎么做。 谢谢。在这种情况下,我不会使用文本框,而是使用标签或只读文本框。要获得用户输入,只需在表单上使用事件(您也必须在表单上启用),然后只需记住按下的键/数字并输出目标格式,这应该是一个相当简单的算法(,并且可能会派上用场): 注意:为什么不

我需要在我的应用程序中添加一个文本框,该文本框以值
0.00
开始显示,就像ATM一样,当您键入数字时,它会保留两个小数点,直到对值满意为止,例如
1023.00
值的结束顺序将是(当我键入时)

在windows窗体应用程序中是否可以执行此操作?。我只是不知道该怎么做。
谢谢。

在这种情况下,我不会使用文本框,而是使用标签或只读文本框。要获得用户输入,只需在表单上使用事件(您也必须在表单上启用),然后只需记住按下的键/数字并输出目标格式,这应该是一个相当简单的算法(,并且可能会派上用场):


注意:为什么不使用文本框呢?因为它的select/replace/remove/type的内部逻辑过于复杂,以至于您需要检查的情况非常复杂,需要优雅地处理。因此,与其尝试将大炮换成吊索,不如从吊索开始。

非常感谢,可能是重复的,我可以在表单中的用户控件中使用这些函数?是的,我认为应该也可以,但是如果你不能关注你的用户控件,那么KeyPreview可能会成为一个问题-请尝试一下。是的,它很有效。。。我现在唯一的问题是,当我到达该屏幕时,我必须单击表单中的某个位置,以便开始填充数字……您应该能够通过将焦点设置为表单中的某个内容来删除此问题。我看到您正在乘以10,如何实现删除?
0.01
0.10
1.02
10.23
102.30
1023.00
    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);
    }