如何选择文本框中的文本,插入符号位于选择的开头?

Posted

技术标签:

【中文标题】如何选择文本框中的文本,插入符号位于选择的开头?【英文标题】: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;

我遇到了异常。

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

【问题讨论】:

【参考方案1】:

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

【讨论】:

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

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

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

【讨论】:

问题在于,如果您在文本框周围有任何键盘处理逻辑,那么每个模拟键都会调用它。

以上是关于如何选择文本框中的文本,插入符号位于选择的开头?的主要内容,如果未能解决你的问题,请参考以下文章

在富文本框中定位列表框

如何让word文本框中的文字垂直上下居中

如何在文本框中插入符号(英镑、欧元、版权)

识别不同文本区域中的光标位置并在列表框中选择项目时插入文本

如何让Word文本框中的文字垂直上下居中

通过键入选择组合框中的项目