文本框SelectionStart,SelectionEnd和Caret(光标)位置
这可能非常简单。
我在WinForm上有一个文本框,Text =“ABCDEFGH”。 我需要选择“BCD”并将I-Beam(光标,插入符号,闪烁’|’)放在’A’和’B’之间。 设置SelectionStart = 1和SelectionLenght = 3不起作用,我无法弄明白。
您需要将SelectionLength
设置为0,如文档中所述 。
您可以通过将SelectionStart设置为文本框中您希望插入符号移动到的位置以及将SelectionLength属性设置为零(0)的值,以编程方式在文本框中移动插入符。
如果问题是事实上选择了BCD ,但是你希望光标在B之前移回我不相信你能通过框架属性这样做,因为选择文本会将光标移动到文本的末尾。 您需要使用坐标和本地互操作,如此处所述。
[DllImport("user32.dll")] [return: MarshalAs(UnmanagedType.Bool)] static extern bool GetCaretPos(out Point lpPoint);
然后,您可以调用SetCaretPos 。