The Last Day Of Summer

.NET技术 C# ASP.net ActiveReport SICP 代码生成 报表应用 RDLC
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何用C#在winform中实现简单的查找功能

Posted on 2006-10-20 10:50  Cure  阅读(2688)  评论(0编辑  收藏  举报

以前写过一个web上的查找的例子,这次写了一个winform下的,当然还是要用正则表达式。一个窗口,上面有一个richTextBox,一个输入框,三个button:查找,前一个,后一个。

主要代码:

MatchCollection matches;

int index = 0;

private void button1_Click(object sender, EventArgs e)

{

        this.index = 0;

        this.richTextBox1.HideSelection = false;

        Regex rx = new Regex(this.textBox1.Text,

        RegexOptions.Compiled | RegexOptions.IgnoreCase);

 

        matches = rx.Matches(this.richTextBox1.Text);

 

        btnNext_Click(sender, e);

}

 

private void btnNext_Click(object sender, EventArgs e)

{

        if (matches.Count > 0 && index < matches.Count )

        {

                Match match = matches[index];

                int currentPos = match.Index;

                this.richTextBox1.Select(currentPos, this.textBox1.Text.Length);

                if (index == matches.Count - 1)

                {

                        MessageBox.Show("end");

                }

                else

                {

                        index += 1;

                }

        }

}

 

private void btnPrev_Click(object sender, EventArgs e)

{

        if (matches.Count > 0 && index >= 0 )

        {

                Match match = matches[index];

                int currentPos = match.Index;

                this.richTextBox1.Select(currentPos, this.textBox1.Text.Length);

                if (index == 0)

                {

                        MessageBox.Show("start");

                }

                else

                {

                        index -=1;

                }

        }

}