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

本文关键字:字段 输入 HTML 一样 作用 WinForm TextBox | 更新日期: 2023-09-27 18:29:54

使用箭头键时,如果我们可以通过按下键到达底部行的末尾,或者通过按下键移动到上部行的开头,则文本框的导航速度会更快。如果您在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;
    }
}

}

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

您在这里谈论的是两个不同的平台。果不其然,无论您在textarea的底线中的位置如何,按下DOWN都会将您移动到该线的末尾。

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

这在网络和Windows应用程序中是普遍的,我想知道有多少人知道网络特定的行为。我怀疑大多数人会将他们的期望从Windows转移到web上,并继续使用End等。