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?哦,顺便说一句,这段代码只适用于美国…十进制分隔符可能会有所不同,处理按键肯定会在中东/远东的几乎每次输入法中都中断。你刚刚试用过,我在英国&它崩溃了,但为你的帮助干杯