编辑后保留突出显示的文本颜色
Retain highlighted color of text after editing
在删除他前面一行的内容后,无法在我的文本上保留我在 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"这个词是用剪贴板粘贴方法插入的简单图片
你绝不能(读我的嘴唇:永远,永远,永远)更改为 Text
或 RichtTextBox
的 Lines
属性 否则你会 lose/mess up 所有以前的格式。
所以你需要改变这个:
richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1);
到这个序列:
首先 Select Text
您想要以某种方式更改的部分:
richTextBox1.SelectionStart = richTextBox1.Text.Length - 1;
richTextBox1.SelectionLength = 1;
现在您可以更改它了。要删除其中一个,请使用:
richTextBox1.SelectedText = "";
或
richTextBox1.Cut();
后一个版本也会将文本放入剪贴板;这样做会保留该部分的格式,您可以 Paste
它到其他地方..
当您要添加或更改任何类型的格式时,同样的规则适用:
先Select再修改
而且,是的,这意味着第二个命令会增长很多,即您必须用循环替换 RegEx.Replace
:-(
在删除他前面一行的内容后,无法在我的文本上保留我在 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"这个词是用剪贴板粘贴方法插入的简单图片
你绝不能(读我的嘴唇:永远,永远,永远)更改为 Text
或 RichtTextBox
的 Lines
属性 否则你会 lose/mess up 所有以前的格式。
所以你需要改变这个:
richTextBox1.Text = richTextBox1.Text.Remove(richTextBox1.Text.Length - 1, 1);
到这个序列:
首先 Select Text
您想要以某种方式更改的部分:
richTextBox1.SelectionStart = richTextBox1.Text.Length - 1;
richTextBox1.SelectionLength = 1;
现在您可以更改它了。要删除其中一个,请使用:
richTextBox1.SelectedText = "";
或
richTextBox1.Cut();
后一个版本也会将文本放入剪贴板;这样做会保留该部分的格式,您可以 Paste
它到其他地方..
当您要添加或更改任何类型的格式时,同样的规则适用:
先Select再修改
而且,是的,这意味着第二个命令会增长很多,即您必须用循环替换 RegEx.Replace
:-(