1

我不确定这里出了什么问题,但我正在尝试计算富文本框中的单词,并用标签显示它。

我在选项卡控件中放置了一个富文本框,这样我就可以拥有一个选项卡式文本框。这似乎使这变得更加困难,那么它应该

这也不是整个程序,我拿了与richtextbox和字计数器有关的部分

任何帮助表示赞赏:)

    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();   
    }
4

2 回答 2

2

我可能只是连接TextChangedRichTextBox 的事件,然后计算那里的单词:

rtb.TextChanged += rtb_TextChanged;

然后数单词(使用 Giorgio Minardi 的正则表达式):

private void rtb_TextChanged(object sender, EventArgs e) {
  label2.Text = Regex.Matches(((RichTextBox)sender).Text, @"[\S]+").Count.ToString();
}
于 2012-05-09T16:45:03.923 回答
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);
}
于 2012-05-09T16:29:56.793 回答