如果存在文本,则突出显示 Richtextbox 中的整行
Highlight entire line in Richtextbox if a text is present
我正在尝试突出显示我的 RichTextBox 中的特定行,如图所示。
int ptrsize = 10;
int* linenum;
for (int i = 0; i < ptrsize; i++)
{
int value = (linenum[i]) * 10;
string searchText = value.ToString();
int indexToText = richTextBox.Find(searchText);
int endIndex = searchText.Length;
richTextBox.Select(indexToText, endIndex);
richTextBox.SelectionColor = Color.Blue;
}
如果存在文本(即 2010),我想突出显示整行。
2010 年 19.5 7.37 105 0.67 0.26 0.69
这将突出显示包含给定文本的给定行:
void highlightLineContaining(RichTextBox rtb, int line, string search, Color color)
{
int c0 = rtb.GetFirstCharIndexFromLine(line);
int c1 = rtb.GetFirstCharIndexFromLine(line+1);
if (c1 < 0) c1 = rtb.Text.Length;
rtb.SelectionStart = c0;
rtb.SelectionLength = c1 - c0;
if (rtb.SelectedText.Contains(search))
rtb.SelectionColor = color;
rtb.SelectionLength = 0;
}
您可能想要存储和恢复原始 Selection
。
有时更改 SelectionBackColor
看起来更好。试试吧!
您可以在整个 RTB 上调用它:
for (int i = 0; i < richTextBox.Lines.Count(); i++)
highlightLineContaining(richTextBox, i, searchText, Color.Red);
我在@TaW 的代码帮助下对之前的代码做了一些修改。
for (int j = 0; j < ptrsize; j++)
{
int value = (linenum[j]) * 10;
string searchText = value.ToString();
for (int i = 0; i < richTextBox.Lines.Count(); i++)
{
highlightLineContaining(richTextBox, i, searchText, Color.Red);
}
}
我正在尝试突出显示我的 RichTextBox 中的特定行,如图所示。
int ptrsize = 10;
int* linenum;
for (int i = 0; i < ptrsize; i++)
{
int value = (linenum[i]) * 10;
string searchText = value.ToString();
int indexToText = richTextBox.Find(searchText);
int endIndex = searchText.Length;
richTextBox.Select(indexToText, endIndex);
richTextBox.SelectionColor = Color.Blue;
}
如果存在文本(即 2010),我想突出显示整行。
2010 年 19.5 7.37 105 0.67 0.26 0.69
这将突出显示包含给定文本的给定行:
void highlightLineContaining(RichTextBox rtb, int line, string search, Color color)
{
int c0 = rtb.GetFirstCharIndexFromLine(line);
int c1 = rtb.GetFirstCharIndexFromLine(line+1);
if (c1 < 0) c1 = rtb.Text.Length;
rtb.SelectionStart = c0;
rtb.SelectionLength = c1 - c0;
if (rtb.SelectedText.Contains(search))
rtb.SelectionColor = color;
rtb.SelectionLength = 0;
}
您可能想要存储和恢复原始 Selection
。
有时更改 SelectionBackColor
看起来更好。试试吧!
您可以在整个 RTB 上调用它:
for (int i = 0; i < richTextBox.Lines.Count(); i++)
highlightLineContaining(richTextBox, i, searchText, Color.Red);
我在@TaW 的代码帮助下对之前的代码做了一些修改。
for (int j = 0; j < ptrsize; j++)
{
int value = (linenum[j]) * 10;
string searchText = value.ToString();
for (int i = 0; i < richTextBox.Lines.Count(); i++)
{
highlightLineContaining(richTextBox, i, searchText, Color.Red);
}
}