[英]C# Cursor/ Caret Not display when Append text in Richtextbox
我是編程新手,正在制作C#Windows窗體應用程序,在選擇“樹”節點時,它將文本附加到Richtextbox中:
Qs1:對我來說,選擇樹節點后不顯示插入符號。 Qs2:使顯示像編輯器一樣,如果以//(注釋)開頭的單詞應為綠色。
謝謝
if (treeView1.SelectedNode.Name == "Node1")
{
this.richTextBox1.SelectedText += " my text for Node1" + Environment.NewLine
richTextBox1.Focus();
}
else if (treeView1.SelectedNode.Name == "Node2")
{
this.richTextBox1.SelectedText += " my text for Node2" + Environment.NewLine
richTextBox1.Focus();
}
您在問兩個與RichTextBox
有關的問題。 StackOverflow的首選形式是每個問題一個問題 。 對於更集中的問題,您可能會得到更多答復。
話雖如此:
根據有關Select
方法的文檔:
文本框必須具有焦點才能移動插入符號。
因此,您首先需要這樣做。
此外,作為一般規則,您永遠不要使用+=
修改先前存在的Text
或SelectedText
,因為這將清除該文本上的所有RTF格式。 相反,要插入文本,應將所選內容設置為所需的長度為零的位置,然后在該位置插入。 從而:
public static void FocusAndAppendToSelectedText(this RichTextBox richTextBox, string text) { Action append = () => { richTextBox.Focus(); var start = richTextBox.SelectionStart; var length = richTextBox.SelectionLength; var insertAt = start + length; richTextBox.Select(insertAt, 0); richTextBox.SelectedText = text; }; if (richTextBox.InvokeRequired) richTextBox.BeginInvoke(append); else append(); }
諸如“ [如何使顯示像編輯器一樣,如果以//(注釋)開頭的單詞應為綠色的地方”這樣的問題非常籠統。 嘗試將其分解為離散的問題,並針對無法解決的問題提出問題。 要開始使用,請在此處看到以下問題: 突出顯示“#”,直到richtextbox中的行結束 。 但是,您可能需要根據您的精確UI要求設置SelectionBackColor
而不是SelectionColor
。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.