使箭头键在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;
}
}
}
您在这里谈论的是两个不同的平台。果不其然,无论您在textarea
的底线中的位置如何,按下DOWN都会将您移动到该线的末尾。
我可以想象,大多数人会使用End键到达当前行的末尾,或者使用Ctrl+End到达整个文本输入区域的末尾。
这在网络和Windows应用程序中是普遍的,我想知道有多少人知道网络特定的行为。我怀疑大多数人会将他们的期望从Windows转移到web上,并继续使用End等。