3

問題は、dataGridView でセルを編集し、Enter キーを押して変更を送信するたびに、現在のセル選択が列の次のセルに自動的に移動することです。一方、行の次のセルに移動したいのですが、そのためのコードを既に書いていますが、デフォルトのアクションをキャンセルすることはできず、行と列の両方が変更されます。

値の変更時にデータグリッドが選択を次の列セルに移動するのを止める方法について何か助けはありますか?

前もって感謝します。

4

1 に答える 1

2

フラグを定義して、編集が発生したときにそれを上げることができます (CellEndEditイベント)。次に、 SelectionChangedイベントでこのフラグをチェックし、フラグ値が true の場合にのみ新しい位置を設定します。

たとえば、以下に投稿されたコードでは、現在のセルを の最初のセルに設定しDataGridView、デフォルトの動作を回避しています。

private bool flag_cell_edited;

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    flag_cell_edited = true;
}

private void dataGridView1_SelectionChanged(object sender, EventArgs e)
{
    if (flag_cell_edited) {
        DataGridViewCell cell = dataGridView1.Rows[0].Cells[0];
        dataGridView1.CurrentCell = cell;
        //set flag value back to false
        flag_cell_edited = false;
    }
}
于 2013-05-26T21:43:15.043 に答える