使箭头键在WinForm TextBox中起作用就像HTML输入字段一样?

时间:2012-04-02 07:23:49

标签: c# .net winforms

如果我们可以通过向下按下到底线的末尾,或者通过按下等效移动到上一行的开头,使用箭头键时文本框的导航速度会更快。如果您在带有HTML输入或textarea的网页中尝试此功能,则此功能正常。但对于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;
    }
}

}

1 个答案:

答案 0 :(得分:0)

你在这里谈论两个不同的平台。果然,无论你在textarea的底线位置,按 DOWN 都会将你移到那一行的末尾。

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

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