http://msdn.microsoft.com/en-us/library/xyhh2e7e.aspx
http://msdn.microsoft.com/en-us/library/system.windows.forms.menumerge.aspx
i setki innych przykładów w necie
Generalnie z child do parent to w oknie dziecku masz parenta rzutujesz na twój typ i możesz na nim operować. Chociaż nie widzę potrzeby takiej, poza porąbanymi zadaniami na laborkach :)
Komunikacja z parent do child, masz właściwość ActiveMdiChild, dostajesz aktywne okno i najlepiej ustalić sobie jakiś spójny interfejs/grupę interfejsów/typ bazowy okien mdi i komunikować się przez wymyślone api. np. IDoWork {void DoWork1(); int doWork2(); ...} twoje okna dzieci implementują taki interfejs, a nadrzędne okno wywołuje metody z interfejsu po rzutowaniu na niego.
Teraz mam problem bo drugi przycisk z menu powinien wywołać określoną funkcję z form 2 ale nie wiem jak się do niej odwołać ( W form 2 mam zdefiniowe:
public void ZapiszDaneTeleadresowe() { tu jest kod} i po naciśnięciu przysiku będącego w form1 w menu chce aby to się wykonało)
Rozumiem że przycisk drugi, to opcja w menu.
Przycisk drugi powinien być w menu form2, a nie okna głównego z opcją MenuItem.MergeType=Add i metodą obsługi tego item'a w form2. W tym momencie ZapiszDaneTeleadresowe
nie musi być public
, bo obsługa kliknięcie itemu menu jest w form2 jak ta metoda.
Może szerzej opisz jak chcesz zbudować program i jak ma wyglądać, bo podejrzewam że może źle zrozumiałeś filozofię MDI i chcesz użyć jej nie do końca z jej zamysłem. Nie znaczy że nie można użyć MDI jako sztuczki, tylko trzeba to zrobić świadomie i pod warunkiem że inaczej łatwiej i sensowniej się tego nie osiągnie.