C#文本框检查

时间:2012-05-10 11:44:20

标签: c#

我试图测试textBox的内容是否等于零,我有两个textBox具有相同的值。我想确保用户无法继续,只有我的textBox之一等于零。尝试了一些手段,但没有工作。我试过这个:

double amount;
amount = double.Parse(transactDisplay.Text.ToString());
if (amount > 0)
{
    MessageBox.Show("Please pay before proceding", "Money not paid",
                                    MessageBoxButtons.OK, MessageBoxIcon.Stop);

}

但它不起作用。

5 个答案:

答案 0 :(得分:3)

Textbox的Text属性返回一个字符串,因此您必须确保它是一个数字并尝试转换它。你可以使用这样的东西:

double amount;
if (double.TryParse(transactDisplay.Text.Trim(), out amount) && amount <= 0)
{
    MessageBox.Show("Please pay before proceding", "Money not paid", MessageBoxButtons.OK, MessageBoxIcon.Stop);
    return;
}
else 
{
   MessageBox.Show("Please add amount greater than 0.", "Money not paid", MessageBoxButtons.OK, MessageBoxIcon.Stop);
   return;
}

如果转换未通过,则不会测试第二个条件(金额<= 0)。

答案 1 :(得分:1)

如果您只使用数字,则应使用NumericUpDown控件,以确保用户无法错误地输入字母。 NumericUpDown控件还具有 DecimalPlaces 属性,因此它们适合大多数场景。

private void button1_Click(object sender, EventArgs e)
{
    if (ValueNotZero(numericUpDown1) && ValueNotZero(numericUpDown2))
        MessageBox.Show("You forgot to pay!");
    else if (!ValueNotZero(numericUpDown1) && !ValueNotZero(numericUpDown2))
        MessageBox.Show("One of the values must not be Zero!");
}

private bool ValueNotZero(NumericUpDown numericControl)
{
    return (double)numericControl.Value > 0;
}

答案 2 :(得分:0)

最好的方法是使用设计的验证事件来测试控件的值。

http://msdn.microsoft.com/en-us/library/system.windows.forms.control.validating.aspx

您还可以使用ErrorProvider显示错误消息:http://msdn.microsoft.com/fr-fr/library/95ysxkwy%28v=vs.80%29.aspx

答案 3 :(得分:0)

double amount = double.Parse(transactDisplay.Text); 
if (amount != 0) 
{ 
    MessageBox.Show("Please pay before proceding", "Money not paid", 
    MessageBoxButtons.OK, MessageBoxIcon.Stop); 
} 

如果它不等于零,则标记该消息。

答案 4 :(得分:0)

试试这个:

double amount;
if (double.TryParse(transactDisplay.Text, out amount) && amount > 0) {
    MessageBox.Show("Please pay before proceding", "Money not paid",
                    MessageBoxButtons.OK, MessageBoxIcon.Stop);
}