Sdílet prostřednictvím


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

Podřízené formuláře MDI jsou základním prvkem aplikací MDI (Multiple-Document Interface), 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 System.Windows.Forms ovládacího prvku jinými ovládacími prvky, jako DataGridView je ovládací prvek nebo kombinace ovládacích prvků, můžete vytvořit podřízená okna MDI (a rozšířením aplikace MDI) s různými možnostmi.

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

  1. Vytvořte nový projekt aplikace model 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. ToolboxZ ovládacího prvku přetáhněte MenuStrip ovládací prvek do formuláře. Nastavte jeho Text vlastnost na File.

  3. Klikněte na tři tečky (...) vedle vlastnosti Items a kliknutím na přidat dvě podřízené položky nabídky pro pruh nástrojů. Text Nastavte vlastnost pro tyto položky na Nový a Okno.

  4. V Průzkumník řešení klikněte pravým tlačítkem myši na projekt a pak 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 model Windows Forms Application (.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. Opacity Vlastnost byla však 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 malováním.

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

    Otevře se návrhář model Windows Forms s formulářem 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í RichTextBox , že ovládací prvek zcela vyplní oblast podřízeného formuláře MDI, i když je formulář změněn.

  8. Poklikejte na položku nabídky Nový a vytvořte pro ni 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 MenuItem2položka nové 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). MergeType Nastavte vlastnost komponent MainMenu i všech položek nabídky podřízeného formuláře na MergeItemshodnotu . 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 podřízené události MDI Closing nezabráníte vyvolání nadřazené Closing události MDI. CancelEventArgs Argument nadřazené události MDI Closing však bude nyní nastaven na truehodnotu . 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é