编辑后保留突出显示的文本颜色

时间:2016-05-06 04:25:28

标签: c# winforms richtextbox

在删除前面的一行内容后,无法保留我在我的文本上设置的RichTextBox中突出显示的效果。

无论我从控件中删除了多少文本,它总是会删除我设置为已包含在其中的文本的自定义SelectionColor和SelectionBackColor。

我的删除方法代码:

private void btnRemove_Click(object sender, EventArgs e)
{
    //Remove selected line from RichTextBox
    richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1);
    //Remove all blank lines remaining after deletion                  
    richTextBox1.Text = Regex.Replace(richTextBox1.Text, @"^\s*$(\n|\r|\r\n)", "", RegexOptions.Multiline);
}

我想删除的字母数为1,因为单词“AND”是通过剪贴板粘贴方法插入的简单图像。

enter image description here

1 个答案:

答案 0 :(得分:1)

你绝对不能(读我的嘴唇:从不,从不,从不)改为TextLines的{​​{1}}属性,否则你会失去/陷入困境以前的所有格式。

所以你需要改变这个:

RichtTextBox

按此顺序:

首先选择要以某种方式更改的richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1); 部分:

Text

现在你可以改变它。删除使用:

richTextBox1.SelectionStart = richTextBox1.Text.Length - 1;
richTextBox1.SelectionLength = 1;

richTextBox1.SelectedText = "";

后一版本也会将文本放在剪贴板中;这样做会保留该部分的格式,你可以richTextBox1.Cut(); 到其他地方..

当您想要添加或更改任何类型的格式时,适用相同的规则:

首先选择然后修改

而且,是的,这意味着第二个命令会增长很多,即你必须用循环替换Paste: - (