我有一个文本框,用户可以在其中输入一个数字,但是我如何才能使它,如果他们键入'。'后,它只允许2个小数位?
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsControl(e.KeyChar)
&& !char.IsDigit(e.KeyChar)
&& e.KeyChar != '.')
{
e.Handled = true;
}
// only allow one decimal point
if (e.KeyChar == '.'
&& (sender as TextBox).Text.IndexOf('.') > -1)
{
e.Handled = true;
}
}
8条答案
按热度按时间pbossiut1#
只需添加:
到你的功能结束
brjng4g32#
只是想指出,接受的答案将不允许您输入任何数字之前的小数点,无论是一旦该标准已得到满足。
当前的其他示例也无法工作,因为它们没有获取光标位置
如果你仍然想使用按键事件,你可以重构你的代码如下:
或者,使用TextChanged事件并执行以下操作,它将工作:
mrphzbgm3#
vmdwslir4#
这是你需要的程序。
sd2nnvve5#
我相信MaskedTextBox类可以帮助你。
更多信息:https://msdn.microsoft.com/en-us/library/system.windows.forms.maskedtextbox(v=vs.110).aspx
如果它不适合你的情况,你可以自己编写一个验证和/或自定义控件。
下面是一个数字文本框的例子:http://msdn.microsoft.com/en-us/library/ms229644(v=vs.80).aspx#Y0
ufj5ltwl6#
就我个人而言,我正在使用这个,它不是很优雅,但工作起来很有魅力。此脚本限制用户只能使用数字字符,只有1点,只有2个十进制数字和退格键。
因此可接受的输入将类似于:1.22、2135.25、3535.5等
vhmi4jdf7#
kxe2p93d8#
我刚刚开始学习Windows编程和C#,我正在寻找一种方法,允许输入+ve十进制值,小数点后有一组数字。我已经把它放在一个类库中,因为我将在其他应用程序中使用它。希望这能帮助其他人开始他们的C#之旅。上面的答案帮助我写出了我要找的东西-这是我最终得到的