我想在富文本框中光標閃爍的位置添加字符串。我也想改變我輸入的文字的顏色。例如,如果預先輸入的文字顏色是黑色的,那麼我輸入了一個新的字符串,那麼這個字符串應該是藍色的。我應該一直輸入字符串。我輸入的琴絃應該保持藍色。謝謝如何在富文本框C#中的光標位置附加字符串?
回答
當前光標位置,也知道作爲SelectionStart
。只需設置SelectionStart=0
,然後設置要所有SelectionXXX屬性:
richtTextBox1.SelectionLength=0;
richtTextBox1.SelectionColor = Color.Blue;
現在你鍵入將變成藍色。
沒有更多,也不需要。無需訂閱TextChanged
事件。
請注意,如果您將光標位置移動到其他地方,該地點將會擁有自己的顏色,並且在此處輸入新文本時,它將具有該顏色。
如果你想新的顏色(藍色)適用於其他部位,你需要這樣也許代碼的SelectionChanged
事件:
private void richTextBox1_SelectionChanged(object sender, EventArgs e)
{
// you should check if there is no text selected
// or else any selection will be colored immediately:
if (richTextBox1.1.SelectionLength == 0)
richTextBox1.1.SelectionColor = yourNewColor;
}
和往常一樣,如果你想要的顏色的部分是已經那裏有一個新的顏色,你需要選擇該部分,並再次設置顏色。最好使用這個調色板!使用一些帶顏色的Labels
你可能會這樣寫:
private void colorLabel_Click(object sender, EventArgs e)
{
Color yourNewColor= ((sender) as Label).BackColor;
richTextBox1.1.SelectionColor = yourNewColor;
}
如果你願意,你可以用更豐富的調色板圖像中的Panel's BackgroundImage
和代碼及其MouseClick
事件:
private void panel1_MouseClick(object sender, MouseEventArgs e)
{
Color c = ((Bitmap)panel1.BackgroundImage).GetPixel(e.X, e.Y);
if (e.Button.HasFlag(MouseButtons.Left))
{
richTextBox1.SelectionColor = c;
}
else // pick new BackColor:
{
richTextBox1.SelectionBackColor = c;
}
}
因此,您需要訂閱文本正在從文本框更改的事件,這會給您輸入到光標的文本。
然後它的只是添加文本,作爲陳述,在那裏你可以將不同格式一件簡單的事情,如下所述:
http://www.wpf-tutorial.com/basic-controls/the-textblock-control-inline-formatting/
謝謝,我會怎麼用它爲富文本框? –
其實我想創建文本編輯器就像記事本等 –
啊,這是一個完全不同的問題我的朋友。我想你可以用TextBlock來做到這一點,但我不能告訴你它是否是正確的做法,或者如果有更好的其他方法,對不起 –
- 1. 光標位置到listgird文本框中的字符串結尾?
- 2. 添加光標位置的文本的文本框在vb.net
- 3. 如何在非文本框組件中設置光標位置
- 4. 設置插入/光標位置到字符串值WPF文本框的末尾
- 5. c#在富文本框中禁用光標
- 6. 子字符串匹配光標位置的文本替換後
- 7. 如何將文本添加到文本框中的光標位置
- 8. 是否可以附加2個富文本字符串?
- 9. 如何捕獲文本框中的光標位置?
- 10. 如何在xaml文本塊或富文本框中附加文本?
- 11. WP7 - 文本框光標位置錯誤
- 12. WPF文本框,更新文字屬性重置光標位置
- 13. 富文本框字符集
- 14. 如何使用jQuery在文本字段中設置字符串末尾的光標位置?
- 15. 富文本json字符串
- 16. C#:向光標所在的位置添加文本
- 17. C#光標/插入符時,附加文字的RichTextBox
- 18. JavaScript,根據光標位置將字符串添加到文本區域
- 19. 將文本插入到光標位置的文本框中VB
- 20. 如何在AutoSuggestBox中設置文本光標的位置?
- 21. 如何設置文本光標在TWTweetComposeViewController中的位置?
- 22. C#|如何通過光標位置選擇文本框中的單詞?
- 23. 如何在C#的富文本框中創建換行符?
- 24. 在TinyMce中添加文本位置的光標,onClick圖標
- 25. 如何在文本文件中查找字符串的位置
- 26. 如何將光標位置轉換爲Visual C中的文本位置?
- 27. VBA - 如何在文本框中的特定位置設置光標?
- 28. 如何通過光標位置獲取文本框的ID
- 29. 如何添加字符串表前在富文本框控件被綁定
- 30. 如何將WPF富文本框變爲字符串
我已經添加了這個代碼,它將數據插入到我的期望的位置但不改變文本顏色。 string insertText = Text; int selectionIndex = richTextBox1.SelectionStart; richTextBox1.SelectionStart = selectionIndex; richTextBox1.Text = richTextBox1.Text.Insert(selectionIndex,insertText); richTextBox1.SelectionLength = 0; richTextBox1.SelectionColor = Color.Blue; –
'richTextBox1.Text ='這是一個錯誤。切勿以任何格式更改RTB的Text屬性,否則會弄亂格式。要按代碼插入文本,請將SelectionStart設置爲所需的位置,SelectionLength = 0並寫入SelectedText = yourNewText。 - 您需要清楚發生什麼是突發事件:用戶輸入新文本或用戶顏色現有文本或代碼添加/插入新文本或代碼重新着色文本。您始終需要使用SelectionColor = newColor,但預配置會有所不同。 – TaW
它不會改變顏色。我使用的代碼是: string insertText = Text; int selectionIndex = richTextBox1.SelectionStart; richTextBox1.SelectionStart = selectionIndex; richTextBox1.SelectedText = insertText; richTextBox1.SelectionColor = Color.Blue; –