如何在C#中控制DataGridView光标移动

5
我希望我的DataGridView光标在输入单元格数据后向右移动到下一列,而不是移动到下一行。我尝试通过捕获dataGridView1_KeyDown事件来控制光标,但这并不能防止光标在输入单元格数据后移动到下一行。谢谢您的帮助。祝好!
1个回答

6
以下是DatagridView程序经理Mark Rideout的回答:
请参阅此链接,向下滚动4个帖子(后面有更好的版本)。将来如果链接失效,请参考以下内容(感谢Mark Rideout):
创建一个名为dvg的新类,继承自DataGridView。编译项目,然后使用这个扩展的Datagridview控件,而不是普通的控件,就可以在按Enter时选择下一个单元格。
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);
}

}


也许我不够称职来发表评论,但最好使用return this.ProcessTabKey(e.KeyData);而不是return this.ProcessRightKey(e.KeyData);这样我们就可以在当前行中没有相邻列的情况下换到新行。 - adopilot

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接