C# 让箭头键在WinForm文本框中像HTML输入字段一样工作?

C# 让箭头键在WinForm文本框中像HTML输入字段一样工作?,c#,.net,winforms,C#,.net,Winforms,如果我们可以通过向下键到达底线的末尾,或者通过向上键移动到上一行的开头,那么使用箭头键时,文本框的导航速度会更快。这是工作,如果你尝试在网页与HTML输入或文本区。但对于windows窗体文本框控件,它的行为与记事本相同。按下向下或向上箭头键时,光标会从整个文本的结尾或开头移动。当使用上下箭头键突出显示文本时,它也应该起作用 关于如何在C#或vb.Net中实现这一点,有什么想法吗?提前谢谢 以下是当前工作突出显示,但仅适用于shift+Down键: if ((keyData == (Keys.S

如果我们可以通过向下键到达底线的末尾,或者通过向上键移动到上一行的开头,那么使用箭头键时,文本框的导航速度会更快。这是工作,如果你尝试在网页与HTML输入或文本区。但对于windows窗体文本框控件,它的行为与记事本相同。按下向下或向上箭头键时,光标会从整个文本的结尾或开头移动。当使用上下箭头键突出显示文本时,它也应该起作用

关于如何在C#或vb.Net中实现这一点,有什么想法吗?提前谢谢

以下是当前工作突出显示,但仅适用于shift+Down键:

if ((keyData == (Keys.Shift | Keys.Down))) {
if (ctl is TextBoxMaskBox) {
    var edit = ctl as TextBoxMaskBox;

    int selectionLength = edit.MaskBoxSelectionLength;
    int remTextLength = edit.MaskBoxText.Length - edit.MaskBoxSelectionLength;
    string remText = edit.MaskBoxText.Substring(selectionLength, remTextLength);

    if (remText.IndexOf(Environment.NewLine) == -1) {
        edit.MaskBoxSelectionLength = edit.MaskBoxText.Length;
        return true;
    }
}

}

您在这里谈论的是两种不同的平台。果不其然,无论您在
文本区域的底行中的什么位置,按下按钮都会将您移动到该行的末尾

我可以想象,大多数人会使用End键到达当前行的末尾,或者使用Ctrl+End键到达整个文本输入区域的末尾


这对于web和Windows应用程序来说是通用的,我想问有多少人知道web特定的行为。我怀疑大多数人会将他们的期望从Windows转移到web,并继续使用End等。

@Yahia,编辑了上述问题,并提供了当前的工作代码。我们的客户用户希望这种功能与HTML输入具有相同的行为。我不知道他们为什么想要这种功能。我的想法是,他们习惯于html输入web控件,或者因为我们的客户是瑞典人,可能对他们来说太多了,或者使用瑞典键盘按Ctrl+End或Shift+End很困难。不过我还没试过瑞典键盘。