【问题标题】:how to control datagridview cursor movement in C#如何在 C# 中控制 datagridview 光标移动
【发布时间】:2008-12-02 02:28:09
【问题描述】:

我希望我的 datagridview 光标在向单元格输入数据后向右移动到下一列,而不是移动到下一行。

我试图通过 dataGridView1_KeyDown 事件捕获键来控制光标,但这并不能阻止光标在向单元格输入数据后移动到下一行...

提前感谢您的帮助。

干杯,

【问题讨论】:

    标签: c# datagridview


    【解决方案1】:

    这是来自 Mark Rideout(DatagridView 项目经理)的回答

    http://forums.microsoft.com/MSDN/ShowPost.aspx?PostID=157055&SiteID=1

    向下滚动 4 个帖子(然后更多,因为它们稍后会在帖子中制作更好的版本)。

    如果链接过期,供将来参考(Mark Rideout 的所有功劳):

    创建一个名为 dvg 的新类,该类继承自 DataGridView。编译项目,然后使用这个扩展的 Datagridview-control 而不是正常的,你将有一个 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);
    }
    

    }

    【讨论】:

    • 也许我没有能力发表评论,但最好使用 return this.ProcessTabKey(e.KeyData);而不是 this.ProcessRightKey(e.KeyData);如果当前行没有旁边的列,我们可以转到新行
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2013-01-02
    • 2018-12-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多