1

datagridviewどのセルをクリックしても、インデックス外エラーが返されます。

次のコードをデバッグすると、 の-1値が得られe.ColumnIndexます。に関してはe.RowIndex、クリックした正しい行を取得します。

 private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
    {
        form2.value = dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString();
    }

e.ColumnIndex動作するかどうかを確認するためだけに、を static intに置き換えようとしました。int を追加すると、特定の行または列をクリックしても何もしません。

ColumnIndexを変更する方法、またはこの問題を回避する方法については、誰でもアイデアがあります。

4

2 に答える 2

2

-1は、が選択されていることをe.ColumnIndex示しますRowHeaderRowSelectedこのイベントにバインドされたイベントもありませんか?

いずれの場合も、チェックをe.ColumnIndex行い、いずれの場合e.RowIndexも両方が0以上であることを確認することをおCellClick勧めします。セルはクリックされたときにもこのイベントRowHeaderColumnHeader発生させ、データを含まないため、ユーザーを混乱させる可能性があります。

于 2013-01-02T13:35:39.880 に答える
0

これを試してみてください

        private void dataGridView1_CellClick(object sender, DataGridViewCellEventArgs e)
        {
            if (e.RowIndex == -1) return;
            if (e.ColumnIndex == -1) return;
            Console.WriteLine(dataGridView1.Rows[e.RowIndex].Cells[e.ColumnIndex].Value.ToString());
        }
于 2013-01-02T14:36:04.377 に答える