Подтвердить что ты не робот

Как загрузить форму внутри панели в другой форме в win app

Я создаю приложение Windows Forms с С#.

У меня есть общая форма и панель.

Я покажу subForm на этой панели с кодом:

SubForm objForm= SubForm.InstanceForm();
this.IsMdiContainer = true;
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();

теперь я хочу показать другую форму в subForm этой панели, но я не знаю, как это сделать.

4b9b3361

Ответ 1

Я думаю, что ваша проблема решена с помощью этого кода:

    SubForm objForm= SubForm.InstanceForm();
    objForm.TopLevel = false;
    pnlSubSystem.Controls.Add(objForm);
    objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
    objForm.Dock = DockStyle.Fill;
    objForm.Show();

Ответ 2

Как я понимаю, вы очень близки. Чтобы добавить другую форму в subform, попробуйте использовать тот же код:

pnlSubSystem.Controls.Add(objForm);

use (где objForm2 - новый subform)

SubForm objForm2 = new SubForm();
objForm.Controls.Add(objForm2); 

Ответ 3

Поскольку у вас уже есть ответ, удалив this.IsMdiContainer = true;, ваш код будет работать отлично. Поскольку свойство IsMdiContainer изменяет отображение и поведение формы в родительскую форму MDI. Если для этого свойства установлено значение true, форма отображает область с погруженным клиентом. Все дочерние формы MDI, назначенные родительской форме, отображаются в пределах своей клиентской области.

SubForm objForm= SubForm.InstanceForm();
objForm.TopLevel = false;
pnlSubSystem.Controls.Add(objForm);
objForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
objForm.Dock = DockStyle.Fill;
objForm.Show();

objForm форма, которая будет шаблоном для дочерних форм. Каждый раз, когда вы хотите создать новое дочернее окно для своего приложения, вы можете создать новый экземпляр этой формы шаблона и сделать первую форму своей родительской формой.

//Create a new instance of the MDI child template form
SubForm objForm = new SubForm(); 
//Set parent form for the child window 
objForm.MdiParent=this; // Last ObjForm or something
//Display the child window
objForm.Show();

Ответ 4

Другой способ:

objForm.TopLevel = false;
objForm.Parent = pnlSubSystem;
objForm.Show();

Это мой первый ответ на Stackoverflow.