欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

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顺序)的控件聚焦。

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;
            }
        }
    }   
}