0

ファイルをデータグリッドにロードすると、エラー メッセージが表示されますFormatException Error。ここで、2 つのセル値を比較して、列インデックス 2 の値が列インデックス 3 より大きい場合、エラー メッセージを表示します。

ファイルを初めてiloadするとき、問題はありません。をロードします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で利用可能な値でColumn2ありColumn1(あなたが言及したものとは異なります)、値をColumn1解析できない場合、解析できないためフォーマット例外がポップアップします。

したがって、if句で列を指定する必要があるかもしれません

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

于 2012-11-26T09:26:49.287 に答える