- A+
所属分类:.NET技术
在一个容器里,使用Tab键会自动聚焦下一个TabStop属性为True的控件,且是按照TabIndex大小顺序聚焦。
如果一个该容器的控件已经聚焦完,继续按Tab键,则会自动跳转到下一个容器(按照容器的TabIndex顺序)的控件聚焦。容器的TabStop不起作用。
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; } } } }