Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在保留c中richtextbox格式的同时删除空行_C#_Formatting_Richtextbox_Removing Whitespace_Preserve - Fatal编程技术网

C# 如何在保留c中richtextbox格式的同时删除空行

C# 如何在保留c中richtextbox格式的同时删除空行,c#,formatting,richtextbox,removing-whitespace,preserve,C#,Formatting,Richtextbox,Removing Whitespace,Preserve,我希望保留文本中的斜体,同时删除所有空行。我似乎做不到 我用了这个密码。它将删除空行,但文本将删除斜体 richTextBox1.Text = Regex.Replace(richTextBox1.Text, @"^\s*$(\n|\r|\r\n)", "", RegexOptions.Multiline); RichTextBox的黄金法则是,一旦文本有任何格式,就不要直接更改文本 要添加文本,请使用AppendText;要更改文本,请使用选择、剪切、复制和粘贴。。方法来保留格式 strin

我希望保留文本中的斜体,同时删除所有空行。我似乎做不到

我用了这个密码。它将删除空行,但文本将删除斜体

richTextBox1.Text = Regex.Replace(richTextBox1.Text, @"^\s*$(\n|\r|\r\n)", "", RegexOptions.Multiline);
RichTextBox的黄金法则是,一旦文本有任何格式,就不要直接更改文本

要添加文本,请使用AppendText;要更改文本,请使用选择、剪切、复制和粘贴。。方法来保留格式

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);
它将保留文本格式并删除所有空行。

+1用于包含\\par-1用于假设Environment.NewLine是个好主意。几乎从来没有。。