Nganku Junior Ответов: 1

Как контролирует гнездо для элементов управления в окне формы приложения


Я хочу встроить приложение оконной формы в другое. Я могу сделать одноуровневое встраивание, скажем, вложив form2 в form1. Однако я хочу встроить третью форму, скажем, form3 в form2(которая сама по себе встроена в form1). Когда я нажимаю на элемент полосы меню form2, он ничего не делает(возможно, потому, что form3 встроен в него ?).
Как я могу решить эту проблему, пожалуйста?

Что я уже пробовал:

            var f2 = new Form2();//Within Form1
            f2.TopLevel = false;
            f2.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            f2.Size = this.Size;
            f2.BringToFront();
            f2.Visible = true;
            this.Controls.Add(f2);

var f3 = new Form3();//Within form2
            f3.TopLevel = false;
            f3.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;
            f3.Size = this.Size;
            f3.BringToFront();
            f3.Visible = true;
            this.Controls.Add(f3);

1 Ответов

Рейтинг:
10

OriginalGriff

Код, который вы показываете, не встраивает Form3 в Form2 - он встраивает его в Form1 вместе с Form2. Если я упрощу ваш код:

var f2 = new Form2();
...
this.Controls.Add(f2);

var f3 = new Form3();
...
this.Controls.Add(f3);
Что вы должны сделать, это:
var f2 = new Form2();
...
this.Controls.Add(f2);

var f3 = new Form3();
...
f2.Controls.Add(f3);


Nganku Junior

Я попытался применить предложенное вами исправление, но оно не помогло. Как Ф2.контроля.добавить (Ф3), будет называться в form1.? Я был под формулой 2, когда код
ВАР Ф3= новый Form3 ();
......
Этот. Контроля.добавить (Ф3)
Было написано. Когда я вызываю переменные вы можете быть вызваны из формы 1 она накладывает их элементы управления на одну и ту же форму