我需要在RTB中突出显示我文本的某一部分,而不是改变字体样式/颜色,而是使用特定颜色进行块选择。这类似于Visual Studio在调试模式下突出显示一行的方式。
这里重要的是使用richtextbox.select函数实现上述功能 WITHOUT ,因为我所拥有的richtextbox正在定期更新,如果它在每次更新时调用select函数,则用户将拖动文本很困难,我不希望这种情况发生。
我在编辑rtf的某个地方听到了一个解决方案,但我并不完全确定如何做到这一点。我很感激任何帮助。
答案 0 :(得分:4)
编辑:刚刚意识到问题是winforms。以下答案适用于WPF,而不是删除我会离开它,万一有人发现它有用。
使用TextRange(...)获取文本并应用背景 例如:
TextRange tr = new TextRange(position, nextPosition);
var Br = new SolidColorBrush(Color.FromScRgb(alpha, 1f, 1f, 0f));
tr.ApplyPropertyValue(TextElement.BackgroundProperty, Br);
但也许您应该研究一下您的更新机制并提出更好的解决方案。
答案 1 :(得分:2)
这不使用richtextbox的Select()函数。它只是在start and end index
坐标and updates the region
中使用选择with
的{{1}}。
colour
将在 // change the co-ordinates as per the selection in the run-time
richTextBox1.Text = "Select some text";
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = 4;
richTextBox1.SelectionBackColor = Color.LightBlue;
中为上述代码选择 Sele
。