如何选择文本框中的文本,插入符号位于选择的开头?
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");
【讨论】:
问题在于,如果您在文本框周围有任何键盘处理逻辑,那么每个模拟键都会调用它。以上是关于如何选择文本框中的文本,插入符号位于选择的开头?的主要内容,如果未能解决你的问题,请参考以下文章