0

在表单内部我想添加 txtbox,它应该接受输入为带 2 位小数或不带小数的小数,如果用户在 db 级别仅输入 1,则将添加小数,如果用户输入 1.00 更好。

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

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

谢谢

4

2 回答 2

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");
}
于 2013-07-10T13:33:39.363 回答
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

于 2013-07-10T13:29:47.053 回答