0

ユーザーがセルをクリックすると、セルにフォーカスがあるときに、別のファイルを開きたい場合、Argument Out Of Range Exception Error 追加したというエラー メッセージが表示されますがtry catch & data Error event handler、それでもこのエラーが発生します。どうすればこれを修正できますか??

private void datagridview_CellValidating(object sender, CellValidatingEventArgs e)
{
try
{
    if (e.ColumnIndex == 2 || e.ColumnIndex == 3)
    {
        datagridview.Rows[e.RowIndex].ErrorText = "";
        int newInteger;
        if (datagridview.Rows[e.RowIndex].IsModified)
            return;
        if (!int.TryParse(e.Value.ToString(),
                          out newInteger) || newInteger < -50000 || newInteger > 50000)
        {
            e.Cancel = true;
            string errorMesssage = d_LanguageDropDownList.SelectedItem.ToString() == "French" ? "Entrez des valeurs décimales entre -50000 et 50000"
                          : "Enter decimal values between -50000 to 50000";
            datagridview.Rows[e.RowIndex].ErrorText = errorMesssage;
        }
    }

}
catch (Exception exception)
{
}

}
private void datagridview_DataError(object sender, GridViewDataErrorEventArgs e)
{

}

ここに画像の説明を入力

4

1 に答える 1

1

グリッド内に行がない場合、またはまだインデックスがない「新しい行」でイベントが呼び出される可能性があります。したがって、インデックスを作成する前に、RowIndexがであるかどうかを確認する必要があります。>= 0

RowIndexブレークポイントを設定すると、エラーが発生する前に、がであることがわかります-1

于 2012-11-23T12:08:36.660 に答える