5

我需要在 RTB 中突出显示我的文本的特定部分,而不是在更改字体样式/颜色的意义上,而是在使用特定颜色进行块选择的意义上。这类似于 Visual Studio 在调试模式下突出显示一行的方式。

我如何使用 RTB 完成此功能,或者更确切地说,它甚至可能吗?如果不可能,我想听听另一种执行上述任务的方法。

4

3 回答 3

11

是的,您可以使用RichTextBox.SelectionBackColor属性设置 RichTextBox 选择的背景颜色。

int blockStart = 1; //arbitrary numbers to test
int blockLength = 15;
richTextBox1.SelectionStart = blockStart;
richTextBox1.SelectionLength = blockLength;
richTextBox1.SelectionBackColor = Color.Yellow;
于 2012-06-25T04:55:15.210 回答
8

我认为您正在寻找ScintillaNET

另一方面,如果您想在 RTB 中自己执行此操作,则可以通过首先找到lineNumberusing TextBoxBase.Lines属性来执行此操作。然后 ...

//Select the line from it's number
startIndex = richTextBox.GetFirstCharIndexFromLine(lineNumber);
richTextBox.Select(startIndex, length);

//Set the selected text fore and background color
richTextBox.SelectionColor = System.Drawing.Color.White;
richTextBox.SelectionBackColor= System.Drawing.Color.Blue;
于 2012-06-25T04:46:24.973 回答
1

在这里,我创建了 CustomRichTextBox 来实现这一点。

这里解释了一个很长的场景的源代码。如果你有兴趣,那么你可以直接重用这个用户控件,而不用担心太多

设想

https://sites.google.com/site/greateindiaclub/mobil-apps/windows8/customwpfrichtextboxwithcolorchangeandhighlightfunctionality

源代码:

https://github.com/boobalaninfo/CustomRichTextBoxWithHighligh

于 2014-11-26T12:45:37.337 回答