Sdílet prostřednictvím


Postupy: Vytváření podřízených formulářů MDI

Podřízené formuláře MDI jsou základním prvkem aplikacíMultiple-Document Interface (MDI), protože tyto formuláře jsou centrem interakce uživatelů.

V následujícím postupu pomocí sady Visual Studio vytvoříte podřízený formulář MDI, který zobrazí RichTextBox ovládací prvek podobný většině aplikací pro zpracování textu. Nahrazením ovládacího prvku System.Windows.Forms jinými ovládacími prvky, jako je ovládací prvek DataGridView nebo kombinací ovládacích prvků, můžete vytvořit podřízená okna MDI (a tím i MDI aplikace) s různými možnostmi.

Vytváření podřízených formulářů MDI

  1. Vytvořte nový projekt aplikace Windows Forms v sadě Visual Studio. V okně Vlastnosti formuláře nastavte jeho IsMdiContainer vlastnost true a jeho WindowsState vlastnost na Maximized.

    Tento kód určuje formulář jako kontejner MDI pro podřízená okna.

  2. Přetáhněte ovládací prvek Toolbox z MenuStrip na formulář. Nastavte jeho Text vlastnost na File.

  3. Klikněte na znak „…“ vedle vlastnosti Items a klikněte na Přidat, abyste přidali dvě podřízené položky nabídky stop lišty. Text Nastavte vlastnost pro tyto položky na Nový a Okno.

  4. V Průzkumníku řešeníklikněte pravým tlačítkem myši na projekt a potom vyberte Přidat>Novou položku.

  5. V dialogovém okně Přidat novou položku vyberte formulář Windows (v jazyce Visual Basic nebo v jazyce Visual C#) nebo aplikaci Windows Forms (.NET) ( v jazyce Visual C++) z podokna Šablony . Do pole Název zadejte název formuláře Form2. Výběrem možnosti Otevřít přidáte formulář do projektu.

    Poznámka:

    Podřízený formulář MDI, který jste vytvořili v tomto kroku, je standardní formulář windows. Má tedy Opacity vlastnost, která umožňuje řídit průhlednost formuláře. Vlastnost Opacity však byla navržena pro okna nejvyšší úrovně. Nepoužívejte ji s podřízenými formuláři MDI, protože může dojít k problémům s vykreslováním.

    Tento formulář bude šablonou pro podřízené formuláře MDI.

    Windows Forms Designer se otevře a zobrazí Form2.

  6. Z panelu nástrojů přetáhněte ovládací prvek RichTextBox do formuláře.

  7. V okně Vlastnosti nastavte Anchor vlastnost na Horní, Vlevo a Dock vlastnost vyplnit.

    To způsobí, že ovládací prvek RichTextBox zcela vyplní oblast podřízeného formuláře MDI, i když je změněna jeho velikost.

  8. Dvakrát klikněte na položku nabídky Nový, abyste pro ni vytvořili obslužnou rutinu Click události.

  9. Vložte kód podobný následujícímu, který vytvoří nový podřízený formulář MDI, když uživatel klikne na položku nové nabídky.

    Poznámka:

    V následujícím příkladu obslužná rutina události zpracovává Click událost pro MenuItem2. Mějte na paměti, že v závislosti na specifikách architektury vaší aplikace nemusí být položka MenuItem2 nabídky .

    Protected Sub MDIChildNew_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MenuItem2.Click
       Dim NewMDIChild As New Form2()
       'Set the Parent Form of the Child window.
       NewMDIChild.MdiParent = Me
       'Display the new form.
       NewMDIChild.Show()
    End Sub
    
    protected void MDIChildNew_Click(object sender, System.EventArgs e){
       Form2 newMDIChild = new Form2();
       // Set the Parent Form of the Child window.
       newMDIChild.MdiParent = this;
       // Display the new form.
       newMDIChild.Show();
    }
    
    private:
       void menuItem2_Click(System::Object ^ sender,
          System::EventArgs ^ e)
       {
          Form2^ newMDIChild = gcnew Form2();
          // Set the Parent Form of the Child window.
          newMDIChild->MdiParent = this;
          // Display the new form.
          newMDIChild->Show();
       }
    

    V jazyce C++ přidejte na začátek form1.h následující #include direktivu:

    #include "Form2.h"
    
  10. V rozevíracím seznamu v horní části okna Vlastnosti vyberte pruh nabídky, který odpovídá pruhu nabídky Soubor a nastavte MdiWindowListItem vlastnost na Okno ToolStripMenuItem.

    Díky tomu může nabídka Okno udržovat seznam otevřených podřízených oken MDI se zaškrtnutím vedle aktivního podřízeného okna.

  11. Stisknutím klávesy F5 spusťte aplikaci. Výběrem možnosti Nový v nabídce Soubor můžete vytvořit nové podřízené formuláře MDI, které jsou sledovány v položce nabídky Okno .

    Poznámka:

    Pokud má podřízený formulář MDI komponentu MainMenu (obvykle se strukturou nabídky položek nabídky) a otevře se v nadřazené formuláři MDI, který má MainMenu součást (obvykle strukturu nabídek položek nabídky), položky nabídky se sloučí automaticky, pokud jste nastavili MergeType vlastnost (a volitelně MergeOrder také vlastnost). Nastavte vlastnost komponenty MergeType a všech položek nabídky podřízeného formuláře na MainMenu. Dále nastavte MergeOrder vlastnost tak, aby položky nabídky z obou nabídek byly zobrazeny v požadovaném pořadí. Kromě toho mějte na paměti, že když zavřete nadřazený formulář MDI, každý z podřízených formulářů MDI vyvolá Closing událost před Closing vyvolání události nadřazeného objektu MDI. Zrušením události podřízené MDI Closing nezabráníte vyvolání události nadřazené MDI Closing. Argument CancelEventArgs události nadřazené MDI Closing však bude nyní nastaven na hodnotu true. Nadřazené formuláře MDI a všechny podřízené formuláře MDI můžete vynutit, aby se zavřely nastavením argumentu CancelEventArgs na falsehodnotu .

Viz také