在删除前面的一行内容后,无法保留我在我的文本上设置的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”是通过剪贴板粘贴方法插入的简单图像。
答案 0 :(得分:1)
你绝对不能(读我的嘴唇:从不,从不,从不)改为Text
或Lines
的{{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
: - (