内部表单我想添加txtbox,它应该接受输入为小数,带有2位小数或没有小数,如果用户在db级别只输入1,则会添加小数,如果用户输入1.00甚至更好。
我是winforms的新手,我需要建议(完成步骤)描述用户输入的情况和验证,只接受可能的数字。 (点)beetween digits。
我不需要繁重的方法,因为我只有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