富文本框如何突出显示文本块

时间:2012-06-25 04:41:13

标签: c# .net winforms richtextbox

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

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

3 个答案:

答案 0 :(得分:9)

是的,您可以使用RichTextBox.SelectionBackColor属性设置RichTextBox选择的BackColor。

int blockStart = 1; //arbitrary numbers to test
int blockLength = 15;
richTextBox1.SelectionStart = blockStart;
richTextBox1.SelectionLength = blockLength;
richTextBox1.SelectionBackColor = Color.Yellow;

答案 1 :(得分:8)

我认为您正在寻找ScintillaNET

另一方面,如果您想在RTB中自己完成此操作,那么您可以先找到使用TextBoxBase.Lines属性的lineNumber来完成此操作。然后......

//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;

答案 2 :(得分:1)

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

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

方案

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

源代码:

https://github.com/boobalaninfo/CustomRichTextBoxWithHighligh