我希望在删除所有空行的同时保留文本中的斜体。我似乎无法做到。
我使用了这段代码。它删除空行,但文本为斜体。
richTextBox1.Text = Regex.Replace(richTextBox1.Text, @"^\s*$(\n|\r|\r\n)", "", RegexOptions.Multiline);
我希望在删除所有空行的同时保留文本中的斜体。我似乎无法做到。
我使用了这段代码。它删除空行,但文本为斜体。
richTextBox1.Text = Regex.Replace(richTextBox1.Text, @"^\s*$(\n|\r|\r\n)", "", RegexOptions.Multiline);
黄金法则RichTextBoxes
是永远不要直接改变Text
它,一旦它有任何格式。
要添加您使用AppendText
和更改您需要使用Select, Cut, Copy & Paste..
方法来保留格式!
string needle = "\r\r"; // only one possible cause of empty lines
int p1 = richTextBox1.Find(needle);
while (p1 >= 0)
{
richTextBox1.SelectionStart = p1;
richTextBox1.Select(p1, needle.Length);
richTextBox1.Cut();
p1 = richTextBox1.Find(needle);
}
对于多根针,恐怕您需要多次调用代码。
您可以尝试从其 Rtf 文本中删除空行。下面给出的示例代码将为您工作。
String[] allLines = richTextBox1
.Rtf
.Split( new string[] { Environment.NewLine },StringSplitOptions.None);
dynamic linesWithoutEmptyLines = from itm in allLines
where itm.Trim() != "\\par"
select itm;
richTextBox1.Rtf = string
.Join(Environment.NewLine, linesWithoutEmptyLines);
它将保留文本的格式并删除所有空行。