我的问题分为两部分:
1)如何在字符串中搜索句子(例如Dell Canada
)(例如I am working in Dell Canada
,我发现它......)。
2)第二部分是我的字符串是RichTextBox中的文本,所以我想找到所选句子的TextRange并应用某些装饰。
感谢。
答案 0 :(得分:5)
给它一个旋转,它将它设置为粗体。您可以使用RichTextBox上的许多Selection ...属性,还要注意它是不区分大小写的搜索:
string textToSearchFor = "Dell Canada";
int index = richTextBox1.Text.IndexOf(textToSearchFor, StringComparison.OrdinalIgnoreCase);
if (index >= 0)
{
richTextBox1.Select(index, textToSearchFor.Length);
richTextBox1.SelectionFont = new Font("Arial", 12f, FontStyle.Bold);
}
else
{
// not found
}
答案 1 :(得分:1)
第1部分:
if (myString.IndexOf("Dell Canada") > -1)
{
// do something great;
}
答案 2 :(得分:1)
第1部分。
bool cntns = "I am working in Dell Canada, and found it ...".Contains("Dell Canada")
答案 3 :(得分:0)
第一部分非常简单,正如CK指出的那样。 富文本格式由RTF规范中定义的某些预定义代码决定。 首先使用RTF属性从控件获取基础RTF原始字符串
string rawString = richTextBox.Rtf;
例如:短语'hello Bobby'的rtf将如下所示。它类似于HTML,你有标签来定义格式。
"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17 hello Bobby\\par\r\n\\par\r\n}\r\n"
现在假设我要将短语设为粗体,我会通过用
替换字符串来设置Rtf属性"{\\rtf1\\ansi\\ansicpg1252\\deff0\\deflang1033{\\fonttbl{\\f0\\fnil\\fcharset0 Microsoft Sans Serif;}}\r\n\\viewkind4\\uc1\\pard\\f0\\fs17
\\b hello Bobby\\par\r\n\\par\r\n}\r\n"
注意短语之前的\\ b。这是使给定文本变粗的代码。
要使用代码执行此格式化,请找到要格式化的字符串(使用第一种技术)并将rtf代码插入所需位置。 希望这会有所帮助。
有关代码,请参阅MSDN http://msdn.microsoft.com/en-us/library/aa140277.aspx
PS:杰夫的版本很简单。这个版本为您提供无限的控制。如果您可以在写字板中执行某些操作,则可以使用rtf代码执行相同的操作。