HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Multiple Document Interface (MDI) használata


Példaprogram letöltése

10909 bájt

A Multiple Document Interface, rövidítve MDI ablakkezelési technika annyit jelent a Windows-ban, hogy adott egy keret ablak, melynek vannak gyerek ablakai. Ezt úgy kell elképzelni, mint mondjuk a Word szövegszerkesztőt, ahol szintén van egy keret program és ahol minden egyes dokumentum egy-egy gyerek ablaknak felel meg.
Minden gyerek ablak lehet teljesen egyforma, mint a Word-ben, de lehetnek akár különbözőek is. Minden ablakból tetszőleges számút nyithatunk meg és ezzel sok munkát takaríthatunk meg, gondoljunk csak ismét a Word-re, számtalan dokumentumot kezelhetünk vele egy időben, pedig ezt az ablakot és a hozzá tartozó funkciókat csupán egyszer kellett elkészíteni.

Egy Form-ból úgy készíthetünk MDI szülő ablakot, hogy annak IsMdiContainer property-jét igazra állítjuk. Ha már van MDI szülő, akkor ehhez MDI gyermek ablakot a következőképpen rendelhetünk. Hozzunk létre egy szokványos Form-ot, majd ennek megjelenítésekor az MdiParent property-t állítjuk be a MDI szülő Form-ra.
        Form2 form2 = new Form2();
        form2.MdiParent = this;
        form2.Show();
Mivel minden MDI gyermek ablak így módon tárolja a szülő ablakot, ezt felhasználhatjuk arra is, hogy a gyermek ablakból elérhetjük a szülő ablak tulajdonságait és befolyásolhatjuk azokat.
    private void button1_Click(object sender, System.EventArgs e)
    {
      this.MdiParent.Text = DateTime.Now.ToString();
    }
A Form-nál találunk egy MdiChildren nevű property-t. Ez egy olyan kollekciót tárol, melyben az összes gyermek Form megtalálható. Így egy ciklus segítségével könnyedén végigmehetünk az összes gyermek Form-on és tetszőleges műveleteket végezhetünk rajtuk.
     for (int i=0; i<this.MdiChildren.Length; i++)
     {
       this.MdiChildren[i].Width=m;
       this.MdiChildren[i].Height=m;
     }
Készíthetünk például egy olyan funkciót is, mely bezárja az összes megnyitott gyermek Form-ot.
A MDI szülő Form MdiChildActivate eseményét felhasználva értesülhet alkalmazásunk arról, hogy megváltozott az aktív gyermek ablak és mostantól egy másik gyermek ablak lett az aktív. Hogy melyik is lett ez az aktív ablak, azt az ActiveMdiChild property-n keresztül tudhatjuk meg, mely Form típusban tárolja ezt az információt.
    private void Form1_MdiChildActivate(object sender, System.EventArgs e)
    {
      label1.Text = this.ActiveMdiChild.Text;      
    }
Arra is lehetőségünk van, hogy a megnyitott MDI gyermek ablakokat elrendezzük egymáshoz képest. Ehhez a szülő Form LayoutMdi függvényét kell meghívnunk.
    private void menuItem2_Click(object sender, System.EventArgs e)
    {
      MenuItem mi = sender as MenuItem;
      this.LayoutMdi((MdiLayout)mi.Index);
    }
Az elrendezés módja az alábbiak egyike lehet:
Mód Leírás
ArrangeIcons A minimalizált méretű gyermek Form-ok egymás mellé rendezése.
Cascade A gyermek Form-ok egymásra lapoltan rendeződnek el.
TileHorizontal Vízszintesen egymás mellé kerülnek a gyermek ablakok.
TileVertical Függőlegesen egymás alá kerülnek a gyermek ablakok.

Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2002 évkönyv 239. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |