如何防止“System.FormatException”发生在mscorlib.dll“中,带有空文本框

本文关键字:文本 dll FormatException System 何防止 mscorlib | 更新日期: 2023-09-27 17:55:54

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

请问我该如何防止这种情况?

我的

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

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");
    }     
}

如何防止“System.FormatException”发生在mscorlib.dll“中,带有空文本框

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

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 .