2009-06-05 20 views
0

文字列(C#の)で文を検索)。私の質問は2つの部分があり

2)2番目の部分はRichTextBoxのテキストです。その選択された文章のTextRangeを探して特定の装飾を適用したいと思います。

ありがとうございました。

+3

あなたはそれを逆にしていると思います。文章内の文字列を探しています。 –

+0

私はあなたが意味することを理解しています。私の主張は、「Dell Canadaで働いています」という文字列に「Dell Canada」のようなスペースで区切られた単語が含まれている文字列を検索することでした。 –

答えて

0

CKが指摘したように、第1の部分は非常に簡単です。 リッチテキストの書式設定は、RTF仕様で定義されている特定の定義済みコードによって決定されます。 RTFプロパティを使用して、コントロールから基になるRTF生の文字列を取得します。

文字列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" 

は、今私は、フレーズの前に

"{\\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形式のプロパティを設定します、私はフレーズを太字にしたいとします。それは与えられたテキストを太字にするコードです。

コードを使用してこの書式を実行するには、最初の手法を使用して書式設定する文字列を探し、必要な位置にrtfコードを挿入します。 これが役立つことを願っています。コードについて

は、MSDN http://msdn.microsoft.com/en-us/library/aa140277.aspx

PSを参照してください:ジェフのバージョンは簡単なものです。このverisonはあなたに無限のコントロールを与えます。ワードパッドで何かできるのなら、rtfコードを使って同じことができます。

+0

こんにちは rtfコードを必要な位置? WPFでSystem.Windows.Control.RichTextBoxを使用しているとは言いませんでした。 –

+0

私はWPFを使用していることが重要だとは思わない。このプロパティは利用可能でなければなりません。 あなたは修正するテキストの位置を取得し、InsertAt()を実行するか、RTF文字列を動的に作成してRtfプロパティに割り当てることができます。 – bobbyalex

1

パート1:

if (myString.IndexOf("Dell Canada") > -1) 
{ 
    // do something great; 
} 
1

パート1

bool cntns = "I am working in Dell Canada, and found it ...".Contains("Dell Canada") 
5

は、この旋回を与えることは大胆にそれを設定します。多くの選択はあなたが使用できるリッチテキストボックスのプロパティはまた、大文字小文字を区別しない検索であることに注意して、...があります。

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 
    } 
+0

クイック返信をいただきありがとうございます。私はWindows.FormではなくWindows.ControlでRichTextBoxを意味しましたが。私はWPFでこのコントロールを使用しています。したがって、richTextBox1.Select(index、textToSearchFor.Length)はありません。あなたのコンセプトを得ました。その範囲を得る方法を探してみる必要があります。 リンク:http://msdn.microsoft.com/en-us/library/system.windows.controls.richtextbox.aspx –

+0

この記事は役立ちますか? :http://shevaspace.blogspot.com/2007/11/how-to-search-text-in-wpf-flowdocument.html フォーマットをTextRangeに適用する方法は次のとおりです。myTextRange.ApplyPropertyValue(TextElement。FontWeightProperty、FontWeights.Bold); – jjxtra

+0

このurlには、rtfコードを使用したくない場合に探しているものがあります。http://www.cnblogs.com/Files/sheva/SyntaxHighlightingDemo.zip – jjxtra

関連する問題