Winform Enter键实现Tab键聚焦

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Winform Enter键实现Tab键聚焦相关的知识,希望对你有一定的参考价值。

在一个容器里,使用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;
            }
        }
    }   
}

 

以上是关于Winform Enter键实现Tab键聚焦的主要内容,如果未能解决你的问题,请参考以下文章

WinForm中变Enter键为Tab键实现焦点转移的方法

c# winform中怎么控制enter键?

winform Form 内控件焦点变化?

将 ENTER 键重新定义为 TAB 键

enter变tab键

怎样才能让winform窗体在任务栏里面不显示,用ALT键+TAB键也看不到,但是程序还在运行!