C# 点击butten切换调用窗口后窗口里richbox里的数据被清空,如何不被清空?

图片说明
如图现点击 选词筛词 是调用的一个窗口,当从组合标题回到选词筛词后,选词筛词 内richbox里的数据被清空了。或者点两次 选词筛词就被清空了。
选词筛词代码如下:

namespace Liebian
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();            
        }

        private void button1_Click(object sender, EventArgs e)
        {
            canmoucj mycaiji = new canmoucj();
            mycaiji.TopLevel = false;//关闭浏览器边框
            this.panel1.Controls.Add(mycaiji );
            mycaiji.FormBorderStyle = FormBorderStyle.None;
            mycaiji.BringToFront();//始终置于顶层
            mycaiji.Show();
        }

        private void button4_Click(object sender, EventArgs e)
        {
           Bticaiji . Denglu d = new Bticaiji.Denglu ();
            d.Show();
        }


    }
}

刚学几天C#,还望各位老师多多关照

Bticaiji . Denglu d = new Bticaiji.Denglu ();
关键是这里,你每次都new了一个新的窗口。

你可以在主程序里定义一个Bticaiji . Denglu的private变量,每次打开同一个,而不是new一个

 public partial class Form1 : Form
    {
        canmoucj Mycaiji = new canmoucj();
        public Form1()
        {
            InitializeComponent();
            mycaiji.TopLevel = false;//关闭浏览器边框
            this.panel1.Controls.Add(mycaiji);
            mycaiji.FormBorderStyle = FormBorderStyle.None;           
            mycaiji.Show();
        }
        private Form mycaiji
           {
             get { return Mycaiji; }

            }
        private void button1_Click(object sender, EventArgs e)
        {
            mycaiji.TopLevel = false;//关闭浏览器边框
            this.panel1.Controls.Add(mycaiji);
            mycaiji.FormBorderStyle = FormBorderStyle.None;
            mycaiji.BringToFront();//始终置于顶层
            mycaiji.Show();
        }

        private void button4_Click(object sender, EventArgs e)
        {
           Bticaiji . Denglu d = new Bticaiji.Denglu ();
            d.Show();
        }

        public  void panel1_Paint(object sender, PaintEventArgs e)
        {

        }
    }

这样写就对了,终于解决了,实例化定义在了button里面