如果TextBox中没有选择,则插入位置等于SelectionStart。
但是如果是一个选择,那么插入位置可能在SelectionStart(从右到左选择):
或者它可能在SelectionStart + SelectionLength(从左到右选择):
当有选择时,如何确定TextBox的插入位置?
答案 0 :(得分:1)
可能有一种欺骗的方法,但没有自然的方法。
例如,如果在应用程序的特定时刻,您知道TextBox
中的文本被选中(左右或左右没有区别),
你可以做到
textBox1.SelectionLength = 0; //this will clear a selection UI
此行之后通过调用
int caretPosition = textBox1.SelectionStart;
会实际检索到Caret
个位置。
顺便说一下这是一个技巧,所以最好避免使用这些解决方案(可能会有人提供其他东西),最好稍微重新排列代码。
希望这有帮助。
答案 1 :(得分:0)
这里对插入位置有很好的解释,最好调用本机API,这样就不会破坏选择和其他文本框功能(例如撤消)
http://www.microbion.co.uk/developers/C%20position%20of%20caret.pdf