[英]RichTextBox C# Set caret location winforms
我正在構建一個聊天應用程序,用戶可以在其中將文本輸入到富文本框。
在富文本框中有一個初始文本,上面寫着:“我:”。
現在,當用戶按下主頁按鈕時,我希望插入符號位於“我:”字符串之后。 因此,對於 Shift+Home 組合或三次鼠標單擊或 Ctrl + 左光標等。
有什么辦法可以做到嗎?
我已經試過了
[DllImport("user32.dll")]
[return: MarshalAs(UnmanagedType.Bool)]
static extern bool SetCaretPos(int X, int Y);
提前致謝,奧茲。
您可以使用富文本框的SelectionStart
和SelectionLength
屬性設置插入符號位置。 將SelectionLength
設置為 0,然后將SelectionStart
設置為您希望插入符號出現的位置。
SelectionStart
的文檔說:
如果控件中未選擇任何文本,則此屬性指示新文本的插入點或插入符號。
Win32 API 函數SetCaretPos
級別太低,無法滿足您的需求。
Winforms: RichTextBox.SelectionStart並將 RichTextBox.SelectionLength 設置為 0。
使用選擇方法:
public void Select(
int start,
int length
)
richTextBoxUserText.Select(richTextBoxUserText.TextLength, 0);
RichTextBox1.SelectionStart = Pos; RichTextBox1.SelectionLength = 0; RichTextBox1.ScrollToCaret();
發現它在屬性 SelectionProtected 上的谷歌搜索
richTextBoxUserText.Text = INITIAL_TEXT;
richTextBoxUserText.SelectAll();
richTextBoxUserText.SelectionColor = Color.Red;
richTextBoxUserText.SelectionProtected = true;
richTextBoxUserText.SelectionLength = 0;
richTextBoxUserText.SelectionStart = richTextBoxUserText.TextLength + 1;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.