【问题标题】:Detect navigation key press in datagridview在datagridview中检测导航键按下
【发布时间】:2013-02-14 12:35:25
【问题描述】:

我尝试使用 datagridview 的按键事件,但它不起作用。如何检测 datagridview 中的上下左右箭头键按下?

【问题讨论】:

    标签: c# visual-studio-2010 datagridview


    【解决方案1】:

    尝试KeyDown 事件:

    private void dgv1_KeyDown(object sender, KeyEventArgs e)
    {
        if (e.KeyCode == Keys.Up || e.KeyCode == Keys.Down || e.KeyCode == Keys.Left || e.KeyCode == Keys.Right)
        {
             //do stuff
        }
    }
    

    【讨论】:

    • 试图这样做,但它不能正常工作。一个item只有在keypress之后才被选中,keydown之后才被选中,所以无法得到想要的结果。
    【解决方案2】:

    PreviewKeyDown 是可能的:

    public Form1()
    {
        InitializeComponent();
    
        dgv.Columns.Add(new DataGridViewTextBoxColumn());
    
        dgv.Rows.Add("text");
    
        dgv.PreviewKeyDown += (sender, args) =>
        {
            Debug.Print(args.KeyCode.ToString());
        };
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-09-24
      • 2018-10-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-10-14
      • 1970-01-01
      相关资源
      最近更新 更多