FindPostion = MainForm1.richTextBox1.Find()异常提示:MainForm1为null,未将对象引用设置到对象的实例

FindPostion = MainForm1.richTextBox1.Find()错误提示:MainForm1为null,未将对象引用设置到对象的实例
   新手求助:下面这句“FindPostion = MainForm1.richTextBox1.Find(str, FindPostion, RichTextBoxFinds.MatchCase);”MainForm1为null,未将对象引用设置到对象的实例。要怎么解决呢????

public Form1 MainForm1;
      public Form4(Form1 form1)
   {  InitializeComponent();
   MainForm1 = form1;//新增语句,记录主窗体属性Name的值
   }//有了Form1引用,可以在formFindReplace类中调用Form1类的公有方法 

      
         int FindPostion=0;
        public void Search()
        {
           
            string str = textBox1.Text;

          [b]  FindPostion = MainForm1.richTextBox1.Find(str, FindPostion, RichTextBoxFinds.MatchCase);[/b]

            if (FindPostion < 0)
                MessageBox.Show("查找完毕!");
            else //找到匹配字符串
            {
                MainForm1.richTextBox1.Focus();  //主窗体成为注视窗口
                FindPostion += str.Length;
                if (FindPostion >= MainForm1.richTextBox1.Text.Length)
                {
                    MessageBox.Show("已到文本底部,再次查找将从文本开始处查找", "提示", MessageBoxButtons.OK);
                    FindPostion = 0; //下次查找的开始位置
                    return;
                }
            } //下次查找的开始位置在此次找到字符串之后
------解决思路----------------------
先把断点设在构造函数和Search方法里面,看MainForm是不是构造函数里面有值而方法里已经变成了Null。
如果是可能是在外界已经被意外释放了。

试试看。
------解决思路----------------------
构造函数里    form1  为null值。