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

2023-12-28

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

无论我从控件中删除多少文本,它总是会删除我设置为已包含在其中的文本的自定义选择颜色和选择背景颜色。

我的删除方法的代码:

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”是通过剪贴板粘贴方法插入的简单图像。


你绝对不能(读我的嘴唇:永远,永远,永远)改变Text or the Lines的财产RichtTextBox否则你会丢失/搞砸所有以前的格式。

所以你需要改变这个:

richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1);

对于这个序列:

首先选择部分Text你想以某种方式改变:

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

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

richTextBox1.SelectedText = "";

or

richTextBox1.Cut(); 

后一个版本还将文本放置在剪贴板中;这样做会保留该部分的格式,您可以Paste它到其他地方..

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

先选择后修改

是的,这意味着第二个命令将增长相当多,即您将不得不替换RegEx.Replace通过循环:-(

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

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