Winform Enter键实现Tab键聚焦

  • A+
所属分类:.NET技术
摘要

在一个容器里,使用Tab键会自动聚焦下一个TabStop属性为True的控件,且是按照TabIndex大小顺序聚焦。

在一个容器里,使用Tab键会自动聚焦下一个TabStop属性为True的控件,且是按照TabIndex大小顺序聚焦。

如果一个该容器的控件已经聚焦完,继续按Tab键,则会自动跳转到下一个容器(按照容器的TabIndex顺序)的控件聚焦。容器的TabStop不起作用。

Winform Enter键实现Tab键聚焦

 

Enter键实现Tab键一样的效果,有两种方法:窗体的SelectNextControl方法、发送Tab命令。

注意不应该使用控件的Enter事件来去实现,这个Enter命名有点迷惑性,因为通过鼠标点击、以及自动聚焦都会触发Enter事件。

using System; using System.Windows.Forms;  namespace WindowsFormsApp1 {     public partial class Form1 : Form     {         public Form1()         {             InitializeComponent();         }          private void Form1_Load(object sender, EventArgs e)         {         }          /// <summary>         /// 不可取的方法         /// </summary>         /// <param name="sender"></param>         /// <param name="e"></param>         private void textBox1_Enter(object sender, EventArgs e)         {            // SendKeys.Send("{Tab}");                     }          private void textBox_KeyPress(object sender, KeyPressEventArgs e)         {             if (e.KeyChar == 13)             {                 Control ctl;                 ctl = (Control)sender;                 this.SelectNextControl(ctl, true, true, true, true);                           }         }          private void textBox_KeyPress1(object sender, KeyPressEventArgs e)         {             if (e.KeyChar == 13)             {                 SendKeys.Send("{Tab}");                 e.Handled = false;             }         }     }    }