DataGridViewのセル移動方法
http://www.gdncom.jp/general/bbs/ShowPost.aspx?PostID=37120
の関係で調べていたのですが、 少しまとめてみます。
1.編集モード(セルに値を入力中)時に、KeyDownイベントでEnterキーを拾って処理しようと試したが、拾えず。orz 考えてみれば実際にはセルといってもTextBoxに対しての入力のようである。
2.そこで、EditingControlShowingイベントでEdit時に表示されるTextBoxのKeyDownイベントハンドラを登録するも、やはりEnterキーだけ拾えず。orz
結局、今のところは、DataGridViewを継承したクラスで、ProcessDialogKeyを処理することにより、逃げています。
class myDataGridView : System.Windows.Forms.DataGridView
{
protected override bool ProcessDialogKey(Keys keyData)
{
if (keyData == Keys.Enter)
{
if (this.CurrentCell.ColumnIndex != this.ColumnCount - 1)
{
this.CurrentCell = this[this.CurrentCell.ColumnIndex + 1,
this.CurrentCell.RowIndex];
return true;
}
else
{
if (this.CurrentCell.RowIndex != this.RowCount - 1)
this.CurrentCell = this[0, this.CurrentCell.RowIndex];
return false;
}
}
return false;
}
}