前提・実現したいこと
DataGridViewでコントロールキー+上矢印キーを押したときに、
最初の行にフォーカスが移動するのではなく、最も近いデータ入力済みのセルにフォーカスを移動したいです。
どうすれば、コントロールキー+上矢印キーで最も近いデータ入力済みのセルにフォーカスを移動できますでしょうか?
発生している問題
下記のコードでKeyDownイベントでCurrentCellを変更しております。
デバッグしてみると、CurrentCellには想定通り[0,1]が入力されるのですが、
実際は、[0,0]の位置にフォーカスが移動してしまいます。
おそらくDataGridViewのデフォルトの動作がKeyDownイベントの後で動作していると思うのですが、うまくいきません。
該当のソースコード
C#
1private void dataGridView1_KeyDown(object sender, KeyEventArgs e) 2{ 3 if (e.Control == true && e.KeyCode == Keys.Up) 4 { 5 var cur = dataGridView1.CurrentCell; 6 7 var y = cur.RowIndex; 8 9 for (int i = y - 1; 0 <= i; i--) 10 { 11 if (dataGridView1[cur.ColumnIndex, i].Value != null && 12 dataGridView1[cur.ColumnIndex, i].Value.ToString() != "") 13 { 14 dataGridView1.CurrentCell = dataGridView1[cur.ColumnIndex, i]; 15 return; 16 } 17 } 18 } 19}

回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2018/09/14 03:32