在表单内部我想添加 txtbox,它应该接受输入为带 2 位小数或不带小数的小数,如果用户在 db 级别仅输入 1,则将添加小数,如果用户输入 1.00 更好。
我是 winforms 的新手,我需要关于所描述情况和验证用户输入的建议(完成步骤),只接受可能的数字。(点)数字之间。
我不需要繁重的方法,因为我只有两种简单的表格,具体的例子就可以了。
谢谢
你应该调查一下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");
}
你可以这样做:
首先你可以使用一个按钮来验证
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