[英]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.