C# 在C语言中,在数字文本框中,如何防止小数点仅作为第一位数字输入?
目前我有一个防止字符输入的代码,并且不止一个小数位, 但是如何防止第一个字符是十进制C# 在C语言中,在数字文本框中,如何防止小数点仅作为第一位数字输入?,c#,visual-studio-2010,visual-studio,visual-studio-2012,C#,Visual Studio 2010,Visual Studio,Visual Studio 2012,目前我有一个防止字符输入的代码,并且不止一个小数位, 但是如何防止第一个字符是十进制 private void textBoxNoLetters_KeyPress(object sender, KeyPressEventArgs e) { if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back && e.KeyChar != '.') {
private void textBoxNoLetters_KeyPress(object sender, KeyPressEventArgs e)
{
if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back && e.KeyChar != '.')
{
e.Handled = true;
}
else if ((e.KeyChar == '.') && ((sender as TextBox).Text.IndexOf('.') > -1))
{
e.Handled = true;
}
}
下面是您的代码,已修改为处理fist键入的十进制分隔符,此外,还将获得系统的十进制分隔符字符,以帮助本地化应用程序
char decimalChar = Convert.ToChar(CultureInfo.CurrentCulture.NumberFormat.NumberDecimalSeparator);
if (!char.IsDigit(e.KeyChar) && e.KeyChar != (char)Keys.Back && e.KeyChar != decimalChar)
{
e.Handled = true;
}
else if ((e.KeyChar == decimalChar) && ((sender as TextBox).Text.IndexOf(decimalChar) > -1))
{
e.Handled = true;
}
else if ((e.KeyChar == decimalChar) && ((sender as TextBox).Text.Length == 0))
{
e.Handled = true;
}
发件人为TextBox.Text.Length>0?哦,顺便说一句,这段代码只适用于美国…十进制分隔符可能会有所不同,处理按键肯定会在中东/远东的几乎每次输入法中都中断。你刚刚试用过,我在英国&它崩溃了,但为你的帮助干杯