【发布时间】:2015-10-13 10:59:01
【问题描述】:
我有这种方法可以替换(粗体)字符串中的一些单词,并在 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();
}
当我调用此方法并将其“放入”到 ritchTextBox 时,它不会打印新行
ingred.Rtf = bold(ingd);
我应该如何解决这个问题??
EDIT:: 输入字符串 - line1 @ line2 @ line3
在MessageBox中输出
Builder.ToString() : {\rtf1\ansi\b line1\b0
line2
line3
}
ritchTextBox 中的输出:line1 line2 line3
【问题讨论】:
-
我在这里没有看到任何
(\r)\nO_O -
因为它是一个 RitchTextBox 我正在使用 Environment.NewLine。但我已经试过了,没有乐趣
-
啊,我现在明白了。执行
Replace之前的string是否包含任何@? -
是的,它确实包含
-
向我们展示一个输入字符串的示例及其输出。
标签: c# formatting richtextbox