2012-05-09 5 views
1

私は何が間違っているのか分かりませんが、私はリッチテキストボックスで単語を数え、ラベルでそれを表示しようとしています。リッチテキストボックスからラベルに単語を数えられませんか?

リッチテキストボックスをタブコントロールに配置して、タブ付きのテキストボックスを持つことができます。どちらも、これは全体のプログラムではありません

それ、これは多くの困難にする必要がありそうです、私はすべてのヘルプは高く評価され、リッチテキストボックス、ワードカウンタに

に関連する部品を取った:)

public RichTab() 
    { 
     InitializeComponent(); 
     TabPage tp = new TabPage("Document"); 
     RichTextBox rtb = new RichTextBox(); 
     rtb.Dock = DockStyle.Fill; 
     tp.Controls.Add(rtb); 
     tabControl1.TabPages.Add(tp); 
     WordCount(); 
    } 

    public RichTextBox RTTB() 
    { 
     RichTextBox rtb = null; 
     TabPage tp = tabControl1.SelectedTab; 
     if (tp != null) 
     { 
      rtb = tp.Controls[0] as RichTextBox; 
     } 
     return rtb; 
    } 

    private void WordCount() 
    { 
     MatchCollection wordColl = Regex.Matches(RTTB().Text, @"[\W]+"); 
     label2.Text = wordColl.Count.ToString(); 
    } 
+0

何が起こりますか? –

+0

既にRTBをタブにドロップしていますので、そのRTBにはどのような名前がありますか? –

答えて

2

が、私はおそらくちょうどリッチテキストボックスのTextChangedイベントを配線し、そこに単語を数えるだろう:

rtb.TextChanged += rtb_TextChanged; 

を次にジョルジオミナルディのを使用して(単語を数えます正規表現):

private void rtb_TextChanged(object sender, EventArgs e) { 
    label2.Text = Regex.Matches(((RichTextBox)sender).Text, @"[\S]+").Count.ToString(); 
} 
+0

完璧な、これは働いた! –

+0

@KevinCopeあなたは答えとしてこれを受け入れるべきです。 –

1

実際の問題は何ですか? はここに単語をカウントする簡単なルーチンです:

[Test] 
public void CountWords() 
{ 
    const string sample = "How you doing today ?"; 
    MatchCollection collection = Regex.Matches(sample, @"[\S]+"); 
    var numberOfWords = collection.Count; 
    //numberOfWords is 5 
    Assert.IsTrue(numberOfWords == 5); 
} 
関連する問題