一个TextBox,一个DataGridView如果你在TextBox输入了值,DataGirdView显示数据(比方说5条)你按键盘的上下键。就可以进入DataGridView上下行中,如果你没有按上下键,而是输入字母或者数字。则操作的是TextBox的值。这种效果。谢谢

解决方案 »

  1.   

    把这个拷到你的代码里看看可不可以
      protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
                if ((this.ActiveControl is DataGridView) == false)
                {
                    if ((keyData == Keys.Up || keyData == Keys.Down))
                    {
                        this.dataGridView1.Focus();
                        return true;
                    }
                    else
                    {
                        this.textBox1.Focus();
                        return base.ProcessCmdKey(ref msg, keyData);
                    }
                }
                else
                {
                    return base.ProcessCmdKey(ref msg, keyData);
                }
            }
      

  2.   

    呵呵,楼主的意思是通过代码实现吧?
    那个TextBox里面的内容和DataGridView中的内容有关系么?
    还是只是单纯的你说的,只要按向下或者向上键,就进入到DataGridView上下行中?可以在TextBox的KeyDown事件里写代码,如下:         private void textBox1_KeyDown(object sender, KeyEventArgs e)
            {
                if (e.KeyCode == Keys.Down || e.KeyCode == Keys.Up) 
                {
                    this.dataGridView1.Select();
                }
            }
      

  3.   

    TextBox的Keyup 或 Keydown 事件.判断是否是上下键. 是则处理 DataGridView
      

  4.   

     protected override bool ProcessCmdKey(ref Message msg, Keys keyData)
            {
                if ((this.ActiveControl is DataGridView) == false)
                {
                    if ((keyData == Keys.Up || keyData == Keys.Down))
                    {
                        this.dataGridView1.Focus();
                        return true;
                    }
                    else
                    {
                        this.textBox1.Focus();
                        return base.ProcessCmdKey(ref msg, keyData);
                    }
                }
                else
                {
                    this.textBox1.Focus();
                    return base.ProcessCmdKey(ref msg, keyData);
                }
            }
    不过效果不理想
    主要是红色部分导致的
      

  5.   

    大家好。我好像没说清楚。我的TextBox是用来查询的。DataGridView是显示查询的。Tab我也知道。不过不是我想要的。4楼的可能是我想要的。我试下