开发者论坛

 找回密码
 注册 (请使用非IE浏览器)
查看: 7062|回复: 0

[源码] C# Winform 按回车键查找下一个可设置焦点的组件

[复制链接]

0

精华

633

贡献

583

赞扬

正版授权组

Rank: 14Rank: 14Rank: 14Rank: 14

帖子
174
软币
3639
在线时间
377 小时
注册时间
2013-7-5
发表于 2013-7-10 12:35:55 | 显示全部楼层 |阅读模式
private void frmLogin_KeyPress(object sender, KeyPressEventArgs e)
{
   //按回车键查找下一个可设置焦点的组件。
   if (e.KeyChar == (Char)Keys.Enter)
   {
      this.SelectNextControl(this.ActiveControl, true, true, true, true);
      e.Handled = true;
   }
}



/// <summary>
        /// 定位下一个输入控件,自定义函数.
        /// </summary>
        protected virtual void SelectNextControl(Control activeControl)
        {
            try
            {
                Control current = activeControl;
                while (true)
                {
                    current = this.GetNextControl(current, true);

                    if (current is GridControl)
                    {
                        GridControl grid = current as GridControl;
                        grid.Focus();
                        break;
                    }

                    //未知原因TagStop会自动设为False,MemoEdit要单独处理.
                    if ((current is MemoEdit) && (current.CanFocus))
                    {
                        current.Focus();
                        break;
                    }

                    if (current is TextBoxMaskBox)
                    {
                        TextEdit owner = ((TextBoxMaskBox)current).OwnerEdit;
                        if (owner != null && owner is MemoEdit) continue; //跳过文本输入框.
                    }

                    if (current != null && current.TabStop == true && current.CanFocus)
                    {
                        if (current.Parent == activeControl) continue; //避免嵌入式输入框
                        current.Focus();
                        break;
                    }
                }
            }
            catch (Exception ex)
            {
                Msg.ShowException(ex);
            }
        }

评分

参与人数 2贡献 +2 赞扬 +2 收起 理由
DaisyNet + 1 很给力
羽叶 + 2 + 1

查看全部评分

回复

使用道具 举报

Archiver|手机版|小黑屋|开发者网 ( 苏ICP备08004430号-2 )
版权所有:南京韵文教育信息咨询有限公司

GMT+8, 2024-12-23 16:34

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表