为什么this.ActiveMdiChild属性返回null?

时间:2011-07-25 07:24:49

标签: c#

我在C#.NET中为子表单创建了一个对象数组。现在我需要复制活动子表单上的某些控件。但是this.ActiveMdiChild属性返回null。在添加控件之前,将禁用主窗体并弹出另一个窗体。 在关闭该表单时,将启用主窗体及其所有控件,并添加控件。

//代码

private void pictureBox1_Click(object sender, EventArgs e)
        {
            this.Enabled = false;               
            Properties_Form pf = new Properties_Form(this);
            pf.Location = panel4.Location;
            pf.Show();

//code to paste the control
            PictureBox pbx = new PictureBox();
            NewVDrawWindow nvd = (NewVDrawWindow)this.ActiveMdiChild;
            nvd.Controls["tabControl1"].Controls["tabPage2"].Controls.Add(pbx);

...
}

插入控件的代码在show方法之后以相同的方法编写,因为我假设控件将返回到跳转的位置。 复制控件的代码工作正常。它没有问题。 那里的错误是由于禁用n启用表单吗?.Plz help !!

1 个答案:

答案 0 :(得分:1)

您应该设置子表单的MdiParent属性,以使其成为表单的MDI子级:

private void pictureBox1_Click(object sender, EventArgs e)
{
    Properties_Form pf = new Properties_Form();
    pf.MdiParent = this; // <-- you need this
    pf.Show();
}