日期:2014-05-19  浏览次数:20792 次

mdi子窗体的问题
父窗体菜单 "新建 "怎么调用mdi   子窗体的richtextbox1???
我是这样调用的,但是只有出现一个子窗体.按新建按钮而不会出现新窗体
还是本来的那个窗体;
              ............
                public   Form2   f2   =   new   Form2();
                public   Form1()
                {
                        InitializeComponent();
                }
                private   void   新建ToolStripMenuItem_Click(object   sender,   EventArgs   e)
                {
                        f2.MdiParent   =   this;
                        f2.Show();                                 ----------无法访问已释放的对象。
                }
                  private   void   粘贴ToolStripMenuItem_Click(object   sender,EventArgs   e)
                {
                        if   (Clipboard.GetDataObject().GetDataPresen(DataFormats.Text)   ==   true)
                        {
                                f2.richTextBox1.Paste();
                        }
                }
              ..................
而且这样做了打开了第一次,关掉.就不能打开第二次了...

------解决方案--------------------
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)
{
f2 = new Form2();
f2.MdiParent = this;
f2.Show();
}

------解决方案--------------------
private void 新建ToolStripMenuItem_Click(object sender, EventArgs e)的实现请参考楼上

private void 粘贴ToolStripMenuItem_Click(object sender,EventArgs e)
{
if (Clipboard.GetDataObject().GetDataPresen(DataFormats.Text) == true)
{
if (this.ActiveMdiChild is Form2)
{
(this.ActiveMdiChild as Form2).richTextBox1.Paste();
}
}
}

不过你这样做就需要在Form2中设置richTextBox1的Modifier为public