如何创建具有十进制值
我需要添加在我的应用程序中的文本框启动与价值0.00
就像一个ATM显示,当你键入数字则保持两个小数点,直到满意值的文本框例如序列结束的1023.00
的值将是(如I型)如何创建具有十进制值
0.01
0.10
1.02
10.23
102.30
1023.00
这是可能做在一个视窗形式的应用程序?我只是不知道该怎么去做。 谢谢。
在这种情况下我不会用一个文本框,而是一个标签或只读文本框。要获取用户输入的只是使用key-press事件表单上(你必须启用表单上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);
}
注:为什么不使用文本框 - 因为它的内部逻辑与选择/替换/删除/类型是这样过于复杂,你必须检查的情况下只是为了多要优雅地处理 - 所以不要试图将大炮变成吊索,而应该从吊索开始。
非常感谢,我可以在用户中使用这些函数控制是在表单中? – user710502 2012-04-01 07:45:36
是的,我认为应该工作太,但如果你不能得到一个专注于你的用户控件将KeyPreview可能是一个问题 - 只是尝试了一下。 – Carsten 2012-04-01 07:58:33
呀它的作品......我现在唯一的问题是,我有在表单中单击当我在那个屏幕到达的数字来开始填充... – user710502 2012-04-01 08:14:29
[Winforms Format TextBox To Currency](http://stackoverflow.com/questions/7258562/winforms-format-textbox-to-currency) – ChrisWue 2012-04-01 07:11:48