【问题标题】:How to select text in a TextBox with the caret positioned at the START of the selection?如何选择文本框中的文本,插入符号位于选择的开头?
【发布时间】:2016-03-12 17:46:56
【问题描述】:

我正在使用System.Windows.Forms.TextBox。可以使用键盘选择文本,使插入符号位于所选内容的开始 - 按住 Shift 并将插入符号向左移动。

我想以编程方式做同样的事情。

例如,假设我有一个带有文本“一些示例文本”的文本框。我希望选择“sample”这个词,并将插入符号定位在“sample”中的“s”之前。

如果我这样做:

textbox.SelectionStart = 5;
textbox.SelectionLength = 6;

然后我选择了单词,但插入符号就在“sample”中的“e”之后。

如果我这样做:

textbox.SelectionStart = 11;
textbox.SelectionLength = -6;

我遇到了异常。

如何将插入符号放置在选择的开头?

【问题讨论】:

    标签: .net winforms


    【解决方案1】:

    我不认为这是可能的编程。正如MSDN 中所述,本机 Windows 控件在结束位置显示一个闪烁的插入符号,而与 start 和 end 的相对值无关。

    【讨论】:

    • 确实如此。感谢您的链接,这似乎确实是不可能的。
    【解决方案2】:

    很少有事情是不可能的......

    textbox.select(11, 0);
    SendKeys.Send("+{LEFT}+{LEFT}+{LEFT}+{LEFT}+{LEFT}+{LEFT}");
    

    【讨论】:

    • 问题在于,如果您在文本框周围有任何键盘处理逻辑,那么每个模拟键都会调用它。
    猜你喜欢
    • 2010-11-14
    • 1970-01-01
    • 1970-01-01
    • 2010-09-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多