RichTextBox不打印换行符

时间:2015-10-13 10:59:01

标签: c# formatting richtextbox

我有这个方法替换(粗体)字符串中的一些单词并在ritchtextBox中显示更改的字符串。 在最后的字符串中,我需要用换行符替换@符号。 我已经尝试检查这个论坛绑几个解决方案,但没有任何效果。

我使用的方法是

private string bold(string ing)
{
    StringBuilder builder = new StringBuilder();

    ing = " " + ing + " ";

    builder.Append(@"{\rtf1\ansi");
    foreach (string word in splitwords)
    {
        var regex = new Regex(@"(?<![\w])" + word + @"(?![\w])", RegexOptions.IgnoreCase);
        ing = regex.Replace(ing, m => @"\b" + m.ToString() + @"\c0");
    }

    ing = ing.Replace(@"\b", @"\b ");
    ing = ing.Replace(@"\c0", @" \b0");
    ing = ing.Replace("@", Environment.NewLine);

    builder.Append(ing);
    builder.Append(@"}");
     MessageBox.Show("builder.ToString():" + builder.ToString());
    return builder.ToString();
}

当我调用此方法并将其“放入”ritcTextBox时,它不会打印新行

ingred.Rtf = bold(ingd);

我该如何解决?

编辑::输入字符串 - line1 @ line2 @ line3

消息框中的

输出

Builder.ToString() : {\rtf1\ansi\b line1\b0
line2
line3
}

在ritchTextBox中输出:line1 line2 line3

4 个答案:

答案 0 :(得分:2)

而不是

 ing = ing.Replace("@", Environment.NewLine);

尝试

    ing = ing.Replace("@", @"\par\r\n");

答案 1 :(得分:1)

更好地使用Environment.NewLine添加新行还要确保yourRTB.MultiLine属性设置为true。将字符串分配给richtext框,如yourRTB.AppendText(t)

答案 2 :(得分:1)

使用此代码进行Repalce

svgandroid

答案 3 :(得分:0)

尝试用SELECT CONCAT([C1], [C2], ...) FROM [dbo.table]; 字符序列替换它?

编辑:启用了"\r\n"的{​​{1}}属性吗?