从Usercontrol打开Mdi表单

时间:2014-01-24 22:00:54

标签: c# winforms

我有MainForm,ChildForm和usercontrol1。我将usercontrol1嵌入到Mainform中。 usercontrol1中有一个按钮。我想在点击按钮时打开ChildForm(作为mdiform)。 ChildForm已经开放最大化。我想总是展示MainForm Titlebar。 这里的代码我试过,但它无法正常工作。 usercontrol1的按钮单击事件中的此代码

ChildForm t = new ChildForm ();

            MainForm m = new MainForm();
            t.MdiParent = m; //Also I tried 'this' too
            t.Dock = DockStyle.Fill;
            t.Show();

谢谢

2 个答案:

答案 0 :(得分:0)

MainForm中,创建一个Singleton,然后您的代码如下所示: MainForm代码:

private static MainForm _Instance;
public static MainForm Instance
{
    get
    {
        if (_Instance == null)
        {
            _Instance = new MainForm();
        }
        return _Instance;
    }
}

活动代码:

ChildForm t = new ChildForm();
t.MdiParent = MainForm.Instance; 
t.Dock = DockStyle.Fill;
t.Show();

答案 1 :(得分:0)

您可以使用ActiveForm来获取当前的MDIForm Actived:

ChildForm t = new ChildForm ();
MainForm m = new MainForm();
t.MdiParent = m.ActiveForm;
t.Show();