刚学C#。菜鸟中的菜鸟
求查找功能和替换功能以及打印预览三项功能的代码。
其他功能都实现了,是按照windows的那个记事本设计的。
谢谢啦

解决方案 »

  1.   

    用对话框实现吧   参照windows 自带的试试
      

  2.   

    FindDiaog  
    public int Find(char[ ] characterSet, int start, int end)
      System.Windows.Forms.RichTextBox 的成员
     
    http://topic.csdn.net/u/20100618/21/380f6c0f-b2ca-47ec-b94e-de2e069b3123.html
      

  3.   

    //查找文本
      private void btnSearchNext_Click(object sender, System.EventArgs e)
      {
       //获得主窗体的引用
       main ff = new main();
       ff = (main)this.Owner;
       findText = 0;   try
       {
        //向下查找
        if(rbtnDown.Checked)
        {    
         findText = ff.richTextBox1.SelectionStart + ff.richTextBox1.SelectionLength;//从光标处开始查找
         if((findText = ff.richTextBox1.Text.IndexOf(textBox1.Text,findText)) == -1)
         {
          MessageBox.Show("找不到\"" + this.textBox1.Text + "\"","myNotepad",MessageBoxButtons.OK,MessageBoxIcon.Information);
          findText = ff.richTextBox1.Text.Length;//搜索到达终点
         }
         else
         {
          //选中找到的文本,使其明显
          ff.richTextBox1.Select(findText,textBox1.Text.Length);
          ff.richTextBox1.Focus();
          findText += textBox1.Text.Length;
         }
        }
         //向上查找
        else if(rbtnUp.Checked)
        {
         findText = ff.richTextBox1.SelectionStart - ff.richTextBox1.SelectionLength;//从光标处开始查找
         if(findText >= 0 && findText <= ff.richTextBox1.Text.Length)
         {
          if((findText = ff.richTextBox1.Text.LastIndexOf(textBox1.Text,findText)) == -1)
          {
           MessageBox.Show("找不到\"" + this.textBox1.Text + "\"","myNotepad",MessageBoxButtons.OK,MessageBoxIcon.Information);
          }
          else
          {
           //选中找到的文本,使其明显
           ff.richTextBox1.Select(findText,textBox1.Text.Length);
           ff.richTextBox1.Focus();
           findText += textBox1.Text.Length;
          }
         }
         else
         {
          MessageBox.Show("找不到\"" + this.textBox1.Text + "\"","myNotepad",MessageBoxButtons.OK,MessageBoxIcon.Information);
         }
        }
       }
       catch(Exception ex)
       {
        MessageBox.Show(ex.Message);
       }
      }
      

  4.   

    替换
    public int findPoint=0; 
    private void btnReplace_Click(object sender, System.EventArgs e)
    {
    frmMain mainForm=(frmMain)this.Owner;
    if(txtContent.Text!=""&&txtReplace.Text!="")
    {
    if(mainForm.richTextBox.Text!="")
    {
    if((findPoint=mainForm.richTextBox.Text.IndexOf(txtContent.Text,findPoint))==-1)
    {
    MessageBox.Show("已到文本末尾,没有要查找和替换的内容","提示",MessageBoxButtons.OK,MessageBoxIcon.Information);
    findPoint=0;
    }
    else
    {
    mainForm.richTextBox .Select(findPoint,txtContent.Text.Length);
    mainForm.richTextBox.SelectedText=txtReplace.Text;
    findPoint=findPoint+txtContent.Text.Length;
    mainForm.Activate();
    }
    }
    else
    MessageBox.Show("无文本,无法查找和替换","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Error);
    }
    else
    MessageBox.Show("要查找和替换的内容不能为空,请输入要查找和替换的内容!","错误提示",MessageBoxButtons.OK,MessageBoxIcon.Warning);

    }// 全部替换
    private void btnAll_Click(object sender, System.EventArgs e)
    {
    frmMain mainForm=(frmMain)this.Owner;
    while((findPoint=mainForm.richTextBox.Text.IndexOf(txtContent.Text,findPoint))!=-1)
    {
    mainForm.richTextBox .Select(findPoint,txtContent.Text.Length);
    mainForm.richTextBox.SelectedText=txtReplace.Text;
    findPoint=findPoint+txtContent.Text.Length;
    }
    mainForm.Activate();
    }
      

  5.   

    //查找文本
       private void btnSearchNext_Click(object sender, System.EventArgs e)
       {
       //获得主窗体的引用
       main ff = new main();
       ff = (main)this.Owner;
       findText = 0;   try
       {
       //向下查找
       if(rbtnDown.Checked)
       {   
      findText = ff.richTextBox1.SelectionStart + ff.richTextBox1.SelectionLength;//从光标处开始查找
       if((findText = ff.richTextBox1.Text.IndexOf(textBox1.Text,findText)) == -1)
       {
       MessageBox.Show("找不到\"" + this.textBox1.Text + "\"","myNotepad",MessageBoxButtons.OK,MessageBoxIcon.Information);
       findText = ff.richTextBox1.Text.Length;//搜索到达终点
       }
       else
       {
       //选中找到的文本,使其明显
       ff.richTextBox1.Select(findText,textBox1.Text.Length);
       ff.richTextBox1.Focus();
       findText += textBox1.Text.Length;
       }
       }
       //向上查找
       else if(rbtnUp.Checked)
       {
       findText = ff.richTextBox1.SelectionStart - ff.richTextBox1.SelectionLength;//从光标处开始查找
       if(findText >= 0 && findText <= ff.richTextBox1.Text.Length)
       {
       if((findText = ff.richTextBox1.Text.LastIndexOf(textBox1.Text,findText)) == -1)
       {
       MessageBox.Show("找不到\"" + this.textBox1.Text + "\"","myNotepad",MessageBoxButtons.OK,MessageBoxIcon.Information);
       }
       else
       {
       //选中找到的文本,使其明显
       ff.richTextBox1.Select(findText,textBox1.Text.Length);
       ff.richTextBox1.Focus();
       findText += textBox1.Text.Length;
       }
       }
       else
       {
       MessageBox.Show("找不到\"" + this.textBox1.Text + "\"","myNotepad",MessageBoxButtons.OK,MessageBoxIcon.Information);
       }
       }
       }
       catch(Exception ex)
       {
       MessageBox.Show(ex.Message);
       }
       }
    出现了“未将对象引用设置到对象的实例”错误,该怎么办???