Создание формы внутри формы - PullRequest
3 голосов
/ 24 июня 2011

Я новичок в Visual Studio 2010 и планирую создать систему хронометража.Я просто хочу спросить, как я могу создать форму, которая состоит из двух форм.Например, если я нажму кнопку, она откроет новую форму внутри формы.Пожалуйста помоги.Спасибо

Ответы [ 5 ]

6 голосов
/ 24 июня 2011

Вы должны работать с MDI (Multiple Document Interface), взгляните на эту статью , которая может помочь.

6 голосов
/ 24 июня 2011
Form formA = new Form();
formA.IsMdiContainer = true;

Form formB = new Form();
formB.MdiParent = formA;
formB.Show();
3 голосов
/ 24 июня 2011

Вы можете создать пользовательскую форму, удалить все границы и панели инструментов, чтобы она выглядела как можно ближе к панели. Затем сделайте эту новую пользовательскую форму MdiContainer / MDI-панелью и покажите формы на этой панели, что-то вроде приведенного ниже кода сделает работу

Определение Mdi-Panel:

публичный класс MdiClientPanel: панель { приватная форма mdiForm; private MdiClient ctlClient = new MdiClient ();

public MdiClientPanel()
{
    base.Controls.Add(this.ctlClient);
}

public Form MdiForm
{
    get
    {
        if (this.mdiForm == null)
        {
            this.mdiForm = new Form();
            /// set the hidden ctlClient field which is used to determine if the form is an MDI form
            System.Reflection.FieldInfo field = typeof(Form).GetField("ctlClient", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance);
            field.SetValue(this.mdiForm, this.ctlClient);
        }
        return this.mdiForm;
    }
}

}

Использование:

/// mdiChildForm is the form that should be showed in the panel
/// mdiClientPanel is an instance of the MdiClientPanel
myMdiChildForm.MdiParent = mdiClientPanel1.MdiForm;
2 голосов
/ 31 мая 2014

Я думаю, это очень простой способ:

    Form1 form= new Form1 ();
    form.TopLevel = false;
    this.Controls.Add(form);
    form.Show();
1 голос
/ 24 июня 2011

Может быть MDI интерфейс будет делать то, что вы хотите ..

Вот учебник для этого.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...