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

            if (e.KeyCode == Keys.Enter)
            {
                //this.SelectNextControl(this.ActiveControl,true, true, true, true);
                SendKeys.Send("{Tab}");  //向活动应用程序发送击键 注意格式:Send("{Tab}");中的{}
            }
/// <summary>
/// 窗体控件控制相关的方法
/// </summary>
public class ControlTools
{
    private Form frm;

    public ControlTools(Form frm)
    {
      this.frm = frm;
    }
    /// <summary>
    /// 窗体上所有子控件的回车设成Tab
    /// </summary>
    public void EnterToTab()
    {
      frm.KeyPreview = true;

      frm.KeyPress += new KeyPressEventHandler(frm_KeyPress);
    }
    /// <summary>
    /// 注册窗体的KeyPress事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void frm_KeyPress(object sender, KeyPressEventArgs e)
    {
      if (e.KeyChar == (char)Keys.Enter)
      {
        frm.SelectNextControl(frm.ActiveControl, true, true, true, true);
      }
    }
    /// <summary>
    /// 把某一个控件的所有子控件(TextBox ComboBox)的回车设成Tab
    /// </summary>
    /// <param name="groupControl">容器控件</param>
    public void EnterToTab(Control groupControl)
    {
      foreach (Control control in groupControl.Controls)
      {
        if (control is TextBox || control is ComboBox)
          control.KeyPress += new KeyPressEventHandler(control_KeyPress);
      }
    }
    /// <summary>
    /// 注册控件的KeyPress事件
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    private void control_KeyPress(object sender, KeyPressEventArgs e)
    {
      if (e.KeyChar == 13)
      {
        SendKeys.Send("{Tab}");
        e.Handled = false;
      }
    }
}

来源参考:

http://www.phpstudy.net/b.php/100776.html  WinForm中变Enter键为Tab键实现焦点转移的方法

http://blog.csdn.net/jameshelong/article/details/11947549  在winform窗口上,实现按回车键(Enter)光标移至下一个控件的方法

原文地址:https://www.cnblogs.com/shy1766IT/p/8178204.html

时间: 2024-08-21 18:25:56

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

在DLL中封装的VCL窗体Tab键响应的问题

在DLL中的子窗体不会响应Tab按键的,这个时候就需要手动去指定Tab键的操作,但是前提是主窗体要向这个窗体发送一个消息,一个Tab键按下的消息.基本顺序是这样的: 1. 主窗体用Hook技术捕获Tab按键并向活动子窗体发送一个Tab键按下的消息 2. 子窗体手动定义一个Tab键被按下的处理(需要用到FormKeyDown事件). 3. 移动到下一个焦点的WinAPI函数:Perform(WM_NEXTDLGCTL,0,0); 4.移动到上一个焦点的函数:Perform(WM_NEXTDLGCT

delphi 中封装的VCl窗体Tab键响应问题

在DLL中的子窗体不会响应Tab按键的,这个时候就需要手动去指定Tab键的操作,但是前提是主窗体要向这个窗体发送一个消息,一个Tab键按下的消息.基本顺序是这样的: 1. 主窗体用Hook技术捕获Tab按键并向活动子窗体发送一个Tab键按下的消息 2. 子窗体手动定义一个Tab键被按下的处理(需要用到FormKeyDown事件). 3. 移动到下一个焦点的WinAPI函数:Perform(WM_NEXTDLGCTL,0,0); 4.移动到上一个焦点的函数:Perform(WM_NEXTDLGCT

C语言 统计一串字符中空格键、Tab键、回车键、字母、数字及其他字符的个数(Ctrl+Z终止输入)

//凯鲁嘎吉 - 博客园 http://www.cnblogs.com/kailugaji/ 1 #include<stdio.h> 2 3 void main(){ 4 int c, letter=0, num=0, blank=0, tab=0, enter=0, other=0 ,i=0, sum=0; 5 printf("Please input a string:\n"); 6 while((c=getchar())!=EOF){ 7 sum++; 8 if(c=

linux中设置TAB键的宽度

对于编程的人员来说,经常需要排版代码,这时候就需要TAB键,但TAB键的宽度太大,很有可能代码太长,延伸到下一行,这个时候你就需要设置TAB键的宽度了. linux下设置TAB键的宽度,做法如下: 在你的用户根目录下直接VI打开 .vimrc文件,输入vi ~/.vimrc 添加如下命令:set tabstop=4 :x保存退出,运行以下命令使该配置文件生效 版权声明:本文为博主原创文章,未经博主允许不得转载.

回车键当Tab键使用

#region 回车键当Tab键使用        private void enter_KeyPress(object sender, KeyPressEventArgs e)        {            foreach (Control c in this.Controls)            {                c.KeyPress += new System.Windows.Forms.KeyPressEventHandler(sendEnter);    

使用回车键代替TAB键 需jquery1.4.2版本

1 $(document).ready(function () { 2 $(':input:text:first').focus(); 3 $(':input:enabled').addClass('enterIndex'); 4 // get only input tags with class data-entry 5 textboxes = $('.enterIndex'); 6 // now we check to see which browser is being used 7 if

Qt之Tab键实现(自由切换焦点)

在Qt中,有一些特殊的按键比如说Tab键,默认Tab事件(切换焦点)被先捕获了,所以如果想自定义Tab键的使用应该如何实现呢? 在实际需求中我主要是实现QLineEdit.QCheckBox.QPushButton.QToolButton之间的切换,可以根据自己的程序修改切换顺序.当然如果自己不去实现Tab键的功能,就像前面所言,Qt也会去捕获Tab键切换焦点,只不过顺序是死的!那么要想灵活的切换应该怎么实现呢? 1.安装事件过滤器 realm_line_edit->installEventFi

只允许input框输入数字,输入其他的键的时候,直接不显示的方法

function numInteger(){ if((event.keyCode>=48 && event.keyCode<=57)  || (event.keyCode>=96 && event.keyCode<=105)) { return true; }else if(event.keyCode==8 || event.keyCode==9){     //保留回格键和tab键 return true; }else{ event.returnV

控制WinForm中Tab键的跳转

一,需求 在Winform中,默认情况下,按下Tab键,光标会按照我们设定的TabIndex值从小到大进行跳转. 但如果用户要求按下Tab键跳转到特定的控件,这种要求还是很合理的,比如用户只想输入几个必须填的项目. 我们可以在配置文件中配置这些必须填写的项目,并设定他们的跳转顺序.这样程序也更加灵活,利于扩展. 二,探索实现方法 1,在每个输入控件的keyDown事件里判断是Tab键,做相应的跳转处理. 最后调查发现按下Tab键,并不会触发控件keyDown事件,Tab键默认被系统处理了,悲剧了