在关闭窗口时获得异常

时间:2016-01-07 09:32:23

标签: c#

点按一下按钮就打开了一个窗口。当我试图关闭那个窗口时(点击十字标记),我得到一个例外陈述

  

您的应用程序中出现未处理的异常。

如果单击“继续”,应用程序将忽略此错误并尝试继续。如果单击“退出”,应用程序将立即关闭。

  

字符串不能为零长度。参数名称:旧值

提前致谢。 以下是代码:

Form2 f = new Form2();
f.cmbColumnCombo.DataSource = cmbList;
f.ShowDialog();

for (int i = 0; i <= dataGridView1.Rows.Count - 1; i++)
{
    if (dataGridView1.Rows[i].Cells[f.cmbColumnCombo.Text].Value.ToString().ToLower().Contains(f.txtfind.Text.ToLower()))
    {
        //dataGridView1.Rows[i].Cells[f.cmbColumnCombo.Text].Value = dataGridView1.Rows[i].Cells[f.cmbColumnCombo.Text].Value.ToString().ToLower().Replace(f.txtfind.Text.ToLower(), f.txtreplace.Text);
        //bulidDataRow(i);
        dataGridView1.Rows[i].Cells[f.cmbColumnCombo.Text].Value = dataGridView1.Rows[i].Cells[f.cmbColumnCombo.Text].Value.ToString().Replace(f.txtfind.Text, f.txtreplace.Text);
        bulidDataRow(i);
    }
}

1 个答案:

答案 0 :(得分:0)

Replace(f.txtfind.Text, f.txtreplace.Text)看起来代码失败了,因为f.txtfind.Text是空字符串。

String.Replace

  

ArgumentException的。 oldValue是空字符串(“”)。

在传递给Replace方法之前验证它。

示例:

if (!string.IsNullOrEmpty(f.txtfind.Text))
{
    dataGridView1.Rows[i].Cells[f.cmbColumnCombo.Text].Value = dataGridView1.Rows[i].Cells[f.cmbColumnCombo.Text].Value.ToString().Replace(f.txtfind.Text, f.txtreplace.Text);
}