2012-04-02 21 views
0

如果我们可以通过按下按钮或者等同按下来移动到上一行的开头,那么当使用箭头键时,文本框会更快地导航。如果您在使用HTML输入或textarea的网页中尝试此功能,此工作正常。但对于Windows窗体文本框控件它与记事本有相同的行为。当您按下或向上箭头键时,它会从整个文本的结尾或开始移动光标。使用向上和向下箭头键突出显示文本时,它也应该有效。像在HTML输入字段中一样在WinForm文本框中使箭头键功能正常工作?

有关如何在C#或vb.Net中实现这一点的任何想法?提前致谢。

这里是当前工作突出,但仅适用于Shift +向下键:

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; 
    } 
} 

}

+0

@Yahia,编辑了上述问题和当前工作代码已提供。 – pogs 2012-04-02 07:44:07

回答

0

您在这里谈论两个不同的平台。果然,无论您在textarea的最后一行中,按下DOWN的确会将您移动到该行的末尾。

我猜想,大多数人会使用结束键进入当前行的末尾,或按Ctrl +获得整个文本输入区的末尾。

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

+0

我们的客户用户希望这种功能与HTML输入具有相同的行为。 – pogs 2012-04-02 07:47:53

+0

我不知道他们为什么要这样做。我的想法是,他们习惯了HTML输入网页控制,或者因为我们的客户端是瑞典语,也许对他们很重要,或者使用瑞典语键盘按Ctrl + End或Shift + End很困难。我还没有尝试瑞典键盘。 – pogs 2012-04-02 07:54:24