Visual Studio Ofwarcie Form Child z innej Child Form -y

0

Witam, mam następujący problem:
W projekcie są 3 Formy
Forma głowna z rozwijanym menu. oraz jednym panelem. Forma ma własciwośc

IsMdiContainer=true;

Wewnątrz Panel1 otwieram Form2

Form1 forma1;
 private void toolStripMenuItem1_Click(object sender, EventArgs e)
 {
     if(forma1 == null) { 
         forma1 = new Form2();
         forma1.MdiParent = this;
         forma1.FormClosed += child_FormClosed;
         panel1.Controls.Add(forma1);
         forma1.Show();
         }
     }
 void child_FormClosed(object sender, FormClosedEventArgs e)
 {
     forma1.FormClosed -= child_FormClosed;
     forma1 = null;
 }

Form2 w tej formie mam pętlę wyświetlającą dane z bazy danych. Dla poszczególnych wierszy przypisane jest zdarzenie OnClick przypisane do funkcji p_kik które otwiera kolejną formę Form3 jako nowe okno

......

void p_klik(object sender, EventArgs e)
                           {
                       wierszid = wid;
                       Form4 child = new Form4();
                       child.Show();
                   }


Nie mogę wykombinować jak uruchomić Form3 jako dziecka Form1 w panel1.

To nie działa

void p_klik(object sender, EventArgs e)
                           {
                       wierszid = wid;
                       Form4 child = new Form4();
                       child.MdiParent = this;
                       Form1.panel1.Controls.Add();
                       child.Show();
                   }

Proszę o pomoc.

0

Jeśłi p_klik jest w oknie MDIChild (Form2) to jak z tego okna tworzysz nowe okno MDIChild musisz ustawić MDIParent na główne okno, które ma IsMDIContainer = true a nie na okno, które tworzy to okno.

Form4 child = new Form4();
child.MdiParent = this.MDIParent;

Jeśli będziesz kontynuował wątek to uzgodnij nazwy bo teraz to masz forma1 = new Form2(), a Form3 to chyba Form4. Ponazywaj te formy w ludzkm języku. MDIForm, ListForm, DetailForm czy jak tam chcesz.

Co to ma znaczyć? forma1 jest typu Form1 czy Form2?

Form1 forma1;
 private void toolStripMenuItem1_Click(object sender, EventArgs e)
 {
     if(forma1 == null) { 
         forma1 = new Form2();
         ...
     }
}

1 użytkowników online, w tym zalogowanych: 0, gości: 1