我想在富文本框中光标闪烁的位置添加字符串。我也想改变我输入的文字的颜色。例如,如果预先输入的文字颜色是黑色的,那么我输入了一个新的字符串,那么这个字符串应该是蓝色的。我应该一直输入字符串。我输入的琴弦应该保持蓝色。谢谢如何在富文本框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; –