Winform Enter键实现Tab键聚焦
程序员文章站
2022-11-01 18:34:38
关于tabIndex的官方文章: https://docs.microsoft.com/zh-cn/dotnet/desktop/winforms/controls/how-to-set-the-tab-order-on-windows-forms?view=netframeworkdesktop- ......
关于tabindex的官方文章:
在一个容器里,使用tab键会自动根据tabindex大小顺序聚焦下一个可以聚焦的控件。(不可以聚焦控件包括:不可见、禁用、tabstop为false)
如果一个该容器的控件已经聚焦完,继续按tab键,则会自动跳转到下一个容器(按照容器的tabindex顺序)的控件聚焦。
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; } } } }