大侠们好,我有个问题如下:
我有N个textBox 我需要按上下左右键 然后这个textBox的焦点就会去到下一个指定方向的textBox(上下左右)中,也就是index的改变 谢谢大侠!

解决方案 »

  1.   

    需要改写mousedown事件吧?
    或者利用tab,每个控件好像都有一个焦点,设置数字
      

  2.   

    菜单-视图-tab键顺序
    打开后看到每个组件都有个数字,该数字为tab键顺序该属性相对组件的TabIndex值
      

  3.   

    向下时:this.ProcessDialogKey(Keys.Shift | Keys.Tab)
    向上时:this.ProcessDialogKey(Keys.Tab)左右难点,暂没有好办法,下策如下:
    向左时:视间隔多少个textBox而定,执行N次 this.ProcessDialogKey(Keys.Shift | Keys.Tab)
    向右同理:视间隔多少个textBox而定,执行N次 this.ProcessDialogKey(Keys.Tab)
      

  4.   

    有多少个textbox?多的话还不如用表格控件。
      

  5.   

    if(textbox上.focused)   //判断是否获得焦点

        textbox上.tabindex=5   //如果获得焦点 修改tabindex的值

           //不要和其他控件的tabindex值相同 每个控件的tabindex值最好与他控件的不同
      

  6.   

    可以在 TextBox mousedown事件中据按下的方向键使用   textBox1.Focus();方法来使相应的TEXTBOX 
    获得焦点。
      

  7.   

    设置Form的KeyPreview = true;
    private void textBox1_KeyPress(object sender, System.Windows.Forms.KeyPressEventArgs e)   
      {   
      if(e.KeyChar==(char)13)   
      textBox2.Focus();   
      }   

    private void Form1_KeyDown(object sender, KeyEventArgs e)
      {
      if (e.KeyCode == Keys.Enter)
      {
      SendKeys.Send("{TAB}");
      }
      }
      

  8.   

    谢谢大家的积极回复 TAP的我会 主要问textbox接受键盘上上下左右键的方法 谢谢各位 我都会试试的 结贴了:)