我如何在RichTextbox中突出显示和颜色特定的文本



我首先尝试了。将文本从listView添加到RichTextbox之后。

void lvnf_SelectedIndexChanged(object sender, EventArgs e)
        {
            if (ListViewCostumControl.lvnf.SelectedItems.Count > 0)
            {
                richTextBox1.Text = File.ReadAllText(ListViewCostumControl.lvnf.Items[ListViewCostumControl.lvnf.SelectedIndices[0]].Text);
                int length = richTextBox1.TextLength;
                richTextBox1.SelectionStart = length;
                richTextBox1.SelectionLength = richTextBox1.Text.Length;
                richTextBox1.SelectionColor = Color.Red;               
            }
        }

在这种情况下,我认为它会以红色为richtextbox中的所有文本,但我不是RichTextbox中的文字仍然是黑色的。

,但我想做的是一行:

richTextBox1.Text = File.ReadAllText(ListViewCostumControl.lvnf.Items[ListViewCostumControl.lvnf.SelectedIndices[0]].Text);

在红色上颜色richtextbox中的所有位置,文本/字符串" form1"存在。

如果您将richTextBox1中可用的整个文本替换为文件提供的新文本。然后SelectionStart将来自0SelectionLength将是输入字符串的长度;即,

string fileContent = File.ReadAllText(ListViewCostumControl.lvnf.Items[ListViewCostumControl.lvnf.SelectedIndices[0]].Text);
int length = fileContent.Length;
richTextBox1.Text = fileContent;
richTextBox1.SelectionStart = 0;
richTextBox1.SelectionLength = length;
richTextBox1.SelectionColor = Color.Red;

如果将文件内容附加到现有文本中,则可以做以下内容:

int startIndex= richTextBox1.TextLength;
richTextBox1.AppendText(fileContent);
richTextBox1.SelectionStart = startIndex;
richTextBox1.SelectionLength = length;
richTextBox1.SelectionColor = Color.Red;

这意味着您必须将选择启动设置为当前文本续长的长度。然后添加内容,然后将SelectionLength设置为内容的长度

最新更新