繁体   English   中英

Textbox SelectionStart,SelectionEnd和Caret(光标)位置

[英]Textbox SelectionStart, SelectionEnd and Caret (Cursor) Position

这可能非常简单。

我在WinForm上有一个文本框,Text =“ABCDEFGH”。 我需要选择“BCD”并将I-Beam(光标,插入符号,闪烁'|')放在'A'和'B'之间。 设置SelectionStart = 1和SelectionLenght = 3不起作用,我无法弄明白。

如果将TextBox.Multiline属性设置为True,则可以使用负选择长度来执行此操作。 您需要使用Select()重载,因为SelectionLength不允许负值。

textBox.Select(1 + 3, -3);

您需要将SelectionLength设置为0,如文档中所述

您可以通过将SelectionStart设置为文本框中您希望插入符号移动到的位置并将SelectionLength属性设置为零(0)的值,以编程方式在文本框中移动插入符。

如果问题是BCD实际上是选中的,但是你希望光标在B之前移回我不相信你能通过框架属性这样做,因为选择文本会将光标移动到文本的末尾。 您可能需要使用坐标和注意本地互操作这里

[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool GetCaretPos(out Point lpPoint);

然后,您可以调用SetCaretPos

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM