接受并验证winforms中的十进制输入

时间:2013-07-10 13:09:39

标签: c# .net winforms

内部表单我想添加txtbox,它应该接受输入为小数,带有2位小数或没有小数,如果用户在db级别只输入1,则会添加小数,如果用户输入1.00甚至更好。

我是winforms的新手,我需要建议(完成步骤)描述用户输入的情况和验证,只接受可能的数字。 (点)beetween digits。

我不需要繁重的方法,因为我只有2个表格这么简单,具体的例子就可以了。

谢谢

2 个答案:

答案 0 :(得分:2)

您应该查看FormatStrings

http://msdn.microsoft.com/en-us/library/0c899ak8.aspx

如何使用WinForms对象执行此操作是为了实现Validating事件并将其用于输入验证,以确保用户确实输入了一个数字,还重新格式化了他们的输入

private void textBox1_Validating (object Sender, CancelEventArgs e)
{
    TextBox tx = Sender as TextBox;
    double test;
    if(!Double.TryParse(tx.Text, out test))
    { 
        /* do Failure things */ 
    }
    else //this is the formatting line
        tx.Text = test.ToString("#,##0.00");
}

答案 1 :(得分:1)

你可以这样做:

首先,您可以使用按钮验证

private void btnValdiate_Click(object sender, EventArgs e)
    {           
        decimal value;

        if(Decimal.TryParse(textBox1.Text,out value))
        {
            bool check = TwoDecimalPlaces(value);
             if(check )
              {
               //do something 
              }else
              {
               //do something else
               }
        }else
        {
          // do something 
        }
    }
    private bool TwoDecimalPlaces(decimal dec)
    {
        decimal value = dec * 100;
        return value == Math.Floor(value);
    }

其次,您可以使用TextChanged事件来执行此操作,例如:

private void textBox1_TextChanged(object sender, EventArgs e)
        {
            decimal value;

            if(Decimal.TryParse(textBox1.Text,out value))
            {
                bool check = TwoDecimalPlaces(value);
                 if(check )
                  {
                   //do something 
                  }else
                  {
                   //do something else
                   }
            }else
            {
              // do something 
            }
        }
 private bool TwoDecimalPlaces(decimal dec)
        {
            decimal value = dec * 100;
            return value == Math.Floor(value);
        }

或者你也可以使用Regex来看看:

http://regexlib.com/DisplayPatterns.aspx?cattabindex=2&categoryId=3&AspxAutoDetectCookieSupport=1