如何防止System.FormatException'发生在mscorlib.dll'用空文本框?

时间:2015-06-13 21:44:22

标签: c# .net winforms

我刚刚编写了一个非常简单的程序来帮助我计算出每餐中碳水化合物的含量(我患有糖尿病),我的问题是当我的一个文本框为空时,我得到System.FormatException

我怎么能阻止这个?

我的代码(使用由3个文本框组成的表单;其中2个需要我输入,第3个显示简单公式的结果)。

public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }

    private void Form()
    {
        tbCCG.TextChanged += TextBoxChanged;
        tbCTG.TextChanged += TextBoxChanged;
    }


    private void TextBoxChanged(object sender, EventArgs e)
    {

        decimal carbsT;
        decimal carbsPerC = Convert.ToDecimal(tbCCG.Text);
        decimal totCarbs = Convert.ToDecimal(tbCTG.Text);
        carbsT = carbsPerC / 100 * totCarbs;
        tbTC.Text = carbsT.ToString("###,###.00");
    }     
}

1 个答案:

答案 0 :(得分:3)

您可以验证文本框中的文字

if (string.IsNullOrWhiteSpace(tbCCG.Text))
    tbCCG.Text = "0";

if (string.IsNullOrWhiteSpace(tbCTG.Text))
    tbCTG.Text = "0";

decimal carbsPerC = Convert.ToDecimal(tbCCG.Text);
decimal totCarbs = Convert.ToDecimal(tbCTG.Text);

但如果您对文本框没有任何限制,请尝试使用decimal.TryParse