日期:2014-05-18  浏览次数:20671 次

使用RichTextBox.Find (String, Int32, Int32, RichTextBoxFinds)后没有突出显示找到的文本,怎么解决?
模仿记事本中的 查找功能, 能查找,但是不突出显示找到的文本, 当查找的小窗口关闭后,主界面上的richtextbox1上的文本,才突出显示查到的文本。

Form1.cs中的

public RichTextBox RichTextBox1
  {
  get
  { return richTextBox1; }
  set
  { richTextBox1 = value; }
  }

SearchForm2.cs 中的
查找下一个按钮click事件代码
private void button1_Click(object sender, EventArgs e)
  {
  Form1 f1 = (Form1)this.Owner;
  string str=textBox1.Text;
  if (isdown) //向下查找
  {
  if (f1.RichTextBox1.SelectionStart + f1.RichTextBox1.SelectionLength < f1.RichTextBox1.Text.Length)
  {
  if (islow)
  {
  try
  {
  f1.RichTextBox1.SelectionStart = f1.RichTextBox1.Find(str, f1.RichTextBox1.SelectionStart + f1.RichTextBox1.SelectionLength, f1.RichTextBox1.Text.Length, RichTextBoxFinds.MatchCase);  
  if(f1.RichTextBox1.SelectionStart==-1)
  {
  MessageBox.Show("无此字符串");
  }
  }
  catch (Exception)
  {
  MessageBox.Show("已经到文件结尾", "查找提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  }
  }
  else
  {
  try
  {
  f1.RichTextBox1.SelectionStart = f1.RichTextBox1.Find(str, f1.RichTextBox1.SelectionStart + f1.RichTextBox1.SelectionLength, f1.RichTextBox1.Text.Length, RichTextBoxFinds.None);  
  if (f1.RichTextBox1.SelectionStart == -1)
  {
  MessageBox.Show("无此字符串");
  }
  }
  catch (Exception)
  {
  MessageBox.Show("已经到文件结尾", "查找提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  }
  }
  }
  else
  {
  MessageBox.Show("已经到文件结尾", "查找提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
  }
  }
  else //向上查找
  {
  if (f1.RichTextBox1.SelectionStart > 0)
  {


  if (islow)
  {
  try
  {
  f1.RichTextBox1.SelectionStart = f1.RichTextBox1.Find(str, 0, f1.RichTextBox1.SelectionStart, RichTextBoxFinds.MatchCase | RichTextBoxFinds.Reverse);
  if (f1.RichTextBox1.SelectionStart == -1)
  {
  MessageBox.Show("无此字符串");
  }
  }
  catch (Exception)