簡體   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