セルにデータを入力した後、次の行に移動するのではなく、datagridviewカーソルを次の列に右に移動したいのですが。
dataGridView1_KeyDownイベントを介してキーをキャプチャすることでカーソルを制御しようとしましたが、セルにデータを入力した後、カーソルが次の行に移動するのを妨げません...
よろしくお願いします。
乾杯、
セルにデータを入力した後、次の行に移動するのではなく、datagridviewカーソルを次の列に右に移動したいのですが。
dataGridView1_KeyDownイベントを介してキーをキャプチャすることでカーソルを制御しようとしましたが、セルにデータを入力した後、カーソルが次の行に移動するのを妨げません...
よろしくお願いします。
乾杯、
Mark Rideout (DatagridView Program Manager) からの回答は次のとおりです。
http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=157055&SiteID=1
4 つの投稿を下にスクロールします (スレッドの後半でより良いバージョンが作成されるため、さらに多くの投稿が表示されます)。
リンクの有効期限が切れた場合の今後の参照用 ( Mark Rideout のすべてのクレジット):
DataGridView から継承する dvg という名前の新しいクラスを作成します。プロジェクトをコンパイルし、通常の代わりにこの拡張された Datagridview-control を使用すると、Enter キーを押したときに次のセルを選択する datagridview が作成されます。
public class dgv : DataGridView
{
protected override bool ProcessDialogKey(Keys keyData)
{
Keys key = (keyData & Keys.KeyCode);
if (key == Keys.Enter)
{
return this.ProcessRightKey(keyData);
}
return base.ProcessDialogKey(keyData);
}
protected override bool ProcessDataGridViewKey(KeyEventArgs e)
{
if (e.KeyCode == Keys.Enter)
{
return this.ProcessRightKey(e.KeyData);
}
return base.ProcessDataGridViewKey(e);
}
}