• WPF和WindowsForm下的按下Enter跳转下一个控件通用方法


    WP下按下回车(enter)跳转下一个控件 上代码:

    protected override void OnKeyDown(KeyEventArgs e)
            {
    
                if (e.Key == Key.Enter)
                {
                    // MoveFocus takes a TraveralReqest as its argument.
                    TraversalRequest request = new TraversalRequest(FocusNavigationDirection.Next);
    
                    // Gets the element with keyboard focus.
                    UIElement elementWithFocus = Keyboard.FocusedElement as UIElement;
    
                    // Change keyboard focus.
                    if (elementWithFocus != null)
                    {
                        elementWithFocus.MoveFocus(request);
                    }
                    e.Handled = true;
                }
                base.OnKeyDown(e);
            }

    在窗体里写上就可以了。

    WindowsForm下的按下回车(Enter)跳转到下一个控件

     /// <summary>
            /// 方法一:实现按下回车跳到下一个控件(不论是什么控件,如果需要可以在里面加上对控件类型的判断)
            /// </summary>
            /// <param name="e"></param>
            protected override void OnKeyDown(KeyEventArgs e)
            {
    
                if (e.KeyCode == Keys.Enter)
                {
                    int i = 0;
                    foreach (Control c in this.Controls)
                    {
                        if (c.Focused)
                        {
                            i = c.TabIndex;
                            break;
                        }
                    }
                    foreach (Control c in this.Controls)
                    {
                        if (c.TabIndex == (i + 1))
                        {
                            c.Focus();
                            break;
                        }
                    }
    
                }
            }
            /// <summary>
            /// 方法二:灵活方便,可以通过方法中的参数控制是否要进入控件的子控件中,是否忽略tobstop的设置。
            /// </summary>
            /// <param name="e"></param>
            protected override void OnKeyPress(KeyPressEventArgs e)
            {
                //base.OnKeyPress(e);
                if (e.KeyChar == (char)13)
                {
                    e.Handled = true;
                    this.SelectNextControl(this.ActiveControl, true, true, true, false);
                }
            }
            /// <summary>
            /// 方法三:直接将enter按键转化为tab按键
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form1_KeyDown(object sender, KeyEventArgs e)
            {
                MessageBox.Show("");
                if (e.KeyCode == Keys.Enter)
                {
                    SendKeys.Send("{TAB}");
                    e.Handled = true;
                }
            }

    具体写在哪个事件里面,以个人情况决定。

  • 相关阅读:
    python自定义排序
    flex 布局
    display: table-cell; 元素上下左右居中,子元素无宽高
    transform 方法 上下左右元素居中 子元素无宽高
    flex 方法上下左右居中 子元素无宽高
    兼容-02
    兼容
    jS辨别访问浏览器判断是android还是ios系统
    选项卡
    返回顶部
  • 原文地址:https://www.cnblogs.com/xiaoch/p/2573589.html
Copyright © 2020-2023  润新知