页面有一个datagridview和一个工具条,当页面加载的时候,焦点自动移动到了datagridview上,工具条中有一个textbox,为快速查询,
(1)
   当我在快速查询中输入内容时,按回车时,我在代码中加入了datagridview1.focus(),这样焦点自动移动了datagridview1上,按方向键(上、下)datagridview1选中的在datagridview1中移动,按(左、右)方向键时,在datagridview中的当前选中条的cell中左右移动,
(2)
   然后,我在工具条中的textbox前设置了一个label,快捷键位为alt+s,当我按快键alt+s时,焦点自动移到了textbox上,但当我在textbox中输入内容回车时,焦点不知道是不是移到了datagridview1上,因为我按方向键(上、下)时,选中条没有在datagridview1中移动,按(左、右)方向键时,焦点又移到了工具条,而在前一种情况,是在datagridview中的当前选中条的cell中左右移动的,
   有没有遇见这种情况的给指点一下,如何让第二种情况中,当我按回车后,按方向键能在datagridview中上下移动,多谢。

解决方案 »

  1.   

    TabIndex属性
    private void Form1_KeyPress(object sender, KeyPressEventArgs e)
    {
        if (e.KeyChar == (char)13) {
            e.Handled = true;
            SendKeys.Send("{TAB}");
        }
    }
    protected override void WndProc(ref Message m)
    {
    if ((int)m.WParam == WM_DEVICEARRVIAL)
    {
    }
    base.WndProc(ref m);
    }
    private void Form1_KeyDown(object sender, KeyEventArgs e)
    {
    switch (e.KeyCode)
    {
    case Keys.Up: { break; }
    case Keys.Down: { break; }
    default:break;
    }
      

  2.   

    我运行了人生如梦的代码,报错,当前上下文名称中不存在WM_DEVICEARRVIAL