-1

我正在尝试使用文本框在 C# 中创建类似记事本的应用程序。我想在其中实现查找功能。我希望能够在 Form1 的文本框中搜索在 Find form 的文本框中输入的文本,然后突出显示它。请帮助我无法做到

Form1.cs

    private void findToolStripMenuItem_Click(object sender, EventArgs e)
    {
        Find f = new Find();

        f.Show();

    }

    public void find()
    {

        int idx = 0;
        while((idx=textBox1.Text.IndexOf(text))!=1)
        {
             textBox1.Select();//Select the text which are found
        }
    } 

查找.cs

    public partial class Find : Form
    {
    Form1 f = new Form1();
    public Find()
    {
        InitializeComponent();
    }


    private void Cancelbutton2_Click(object sender, EventArgs e)
    {
        this.Close();
    }

    private void Findbutton1_Click(object sender, EventArgs e)
    {
        f.text =textBox1.Text;
        f.find();

    }
4

2 回答 2

1

您需要在“选择”方法中指定开始和长度参数。例如:

textBox1.Select(idx, text.Length);
于 2013-06-14T05:58:45.120 回答
1

使用标准文本框一次只能突出显示一部分数据。如果您想要更好的支持,请尝试FastColourTextbox 。

private void textBox1_Enter(object sender, System.EventArgs e){
   if (!String.IsNullOrEmpty(textBox1.Text))
   {
      textBox1.SelectionStart = 0;
      textBox1.SelectionLength = textBox1.Text.Length;
   }
}
于 2013-06-14T05:58:52.683 回答