0

当我将文件加载到数据网格中时,我收到一条错误消息,FormatException Error. 在这里,我正在尝试做的是比较两个单元格值,如果 col 索引 2 值大于 col 索引 3,则显示错误消息。

当我第一次加载文件时,我没有问题。我为seconfd time, i'm gettign the above error message.

我尝试使用Convert.ToInt32, int,仍然收到相同的错误消息。我怎样才能解决这个问题??

private void datagridview_CellValidating(object sender, CellValidatingEventArgs e)
{
if (e.ColumnIndex != 0)
{
    if (e.RowIndex >= 0 && e.RowIndex < 8)
    {
        if (e.Value != null && datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value != null)
        {
                //Convert.ToInt32, int////
            if (Double.Parse(e.Value.ToString()) <=
                Double.Parse(datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value.ToString()))
            {
                MessageBox.Show("error");
                e.Cancel = true;
                datagridview.Rows[e.RowIndex].ErrorText = errorMesssage;
            }
        }
    }
}
}
4

1 回答 1

0

我认为你应该在这里重新审视你的状况

if (Double.Parse(e.Value.ToString()) <=    
    Double.Parse(datagridview.Rows[e.RowIndex].Cells[e.ColumnIndex - 1].Value.ToString()))

现在,当您验证比较时会发生什么,将使用andColumn1中的可用值(而不是您提到的),因此如果无法解析其中的值,那么它将弹出一个格式异常,因为它无法解析。Column2Column1Column1

所以也许你需要在你的 if 子句中指定列

if (e.ColumnIndex != 0) // here you allow for Column3, so that e.ColumnIndex - 1 is 2

于 2012-11-26T09:26:49.287 回答