使用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)