这可能非常简单。
我在一个WinForm窗体上有一个文本框,文本为"ABCDEFGH"。我需要选择"BCD"并将光标放在'A'和'B'之间。设置SelectionStart = 1和SelectionLenght = 3不起作用,我想不出解决办法。
这可能非常简单。
我在一个WinForm窗体上有一个文本框,文本为"ABCDEFGH"。我需要选择"BCD"并将光标放在'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);
TextBox.Multiline
属性设置为True,则可以通过使用负选择长度来执行此操作。您需要使用Select()
重载,因为SelectionLength
不允许负值。textBox.Select(1 + 3, -3);