如何在richTextBox中突出显示和着色特定文本?

时间:2016-06-19 06:09:53

标签: c# .net winforms

我先试过这个。在将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);

要在redTextBox中的所有位置中着色为text / string" Form1"存在。

1 个答案:

答案 0 :(得分:0)

如果您使用文件提供的新文本替换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;

这意味着您必须将选择开始设置为当前TextContent长度。然后附加内容,然后将SelectionLength设置为内容的长度