Uwaga
Dostęp do tej strony wymaga autoryzacji. Może spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Formularze podrzędne MDI są podstawowym elementem aplikacji interfejsu Multiple-Document (MDI), ponieważ te formularze są centrum interakcji użytkownika.
W poniższej procedurze użyjesz programu Visual Studio do utworzenia formularza podrzędnego MDI, który wyświetla kontrolkę RichTextBox, podobnie jak większość aplikacji do przetwarzania wyrazów. Podstawiając kontrolkę System.Windows.Forms innymi kontrolkami, takimi jak kontrolka DataGridView lub kombinacja kontrolek, można utworzyć okna podrzędne MDI (i przez rozszerzenie, aplikacje MDI) z różnymi możliwościami.
Utwórz formularze podrzędne MDI
Utwórz nowy projekt aplikacji Windows Forms w programie Visual Studio. W oknie właściwości
formularza ustaw jej właściwość na i jej właściwość na wartość . Oznacza to formularz jako kontener MDI dla okien podrzędnych.
Z
Toolbox
przeciągnij kontrolkę MenuStrip do formularza. Ustaw jej właściwośćText
na wartość File.Kliknij wielokropek (...) obok właściwości Items, a następnie kliknij Dodaj, aby dodać dwa podrzędne elementy menu paska narzędziowego. Ustaw właściwość
Text
dla tych elementów na New i Window.W eksploratorze rozwiązań kliknij prawym przyciskiem myszy projekt, a następnie wybierz pozycję Dodaj nowy element>.
W oknie dialogowym Dodawanie nowego elementu, wybierz pozycję Formularz Windows (w języku Visual Basic lub Visual C#) lub Windows Forms Application (.NET) (w języku Visual C++) z okienka Szablony. W polu nazwa
nadaj formularzowi nazwę Form2 . Wybierz pozycję Otwórz, aby dodać formularz do projektu.Uwaga / Notatka
Formularz podrzędny MDI utworzony w tym kroku jest standardowym formularzem systemu Windows. W związku z tym ma właściwość Opacity, która umożliwia kontrolowanie przezroczystości formularza. Jednak właściwość Opacity została zaprojektowana dla okien najwyższego rzędu. Nie używaj go z formularzami podrzędnymi MDI, ponieważ mogą wystąpić problemy z renderowaniem.
Ten formularz będzie szablonem formularzy podrzędnych MDI.
Windows Forms Designer
zostanie otwarty, wyświetlając Form2 .Z przybornika , przeciągnij kontrolkę RichTextBox do formularza.
W oknie właściwości ustaw właściwość
Anchor
na Top, Left oraz właściwośćDock
na Fill.Powoduje to, że kontrolka RichTextBox całkowicie wypełnia obszar formularza podrzędnego MDI, nawet gdy formularz jest zmieniany.
Kliknij dwukrotnie element menu Nowy, aby utworzyć dla niego procedurę obsługi zdarzeń Click.
Wstaw kod podobny do poniższego, aby utworzyć nowy formularz podrzędny MDI, gdy użytkownik kliknie element menu Nowy.
Uwaga / Notatka
W poniższym przykładzie program obsługi zdarzeń obsługuje zdarzenie Click dla
MenuItem2
. Należy pamiętać, że w zależności od specyfiki architektury aplikacji element menu Nowy może nie byćMenuItem2
.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(); }
W języku C++dodaj następującą dyrektywę
#include
w górnej części formularza Form1.h:#include "Form2.h"
Na liście rozwijanej w górnej części okna właściwości wybierz pasek menu odpowiadający paskowi menu Plik i ustaw właściwość MdiWindowListItem na okno ToolStripMenuItem.
Dzięki temu menu okna
może obsługiwać listę otwartych okien podrzędnych MDI z znacznikiem wyboru obok aktywnego okna podrzędnego. Naciśnij F5, aby uruchomić aplikację. Wybierając pozycję Nowy z menu Plik, możesz utworzyć nowe formularze podrzędne MDI, które są śledzone w elemencie menu Okno.
Uwaga / Notatka
Gdy formularz podrzędny MDI ma składnik MainMenu (zwykle ze strukturą elementów menu) i jest otwierany w formularzu nadrzędnym MDI, który ma składnik MainMenu (zwykle ze strukturą elementów menu), elementy menu zostaną scalone automatycznie, pod warunkiem, że ustawisz właściwość MergeType (i opcjonalnie właściwość MergeOrder). Ustaw właściwość MergeType zarówno składników MainMenu, jak i wszystkich elementów menu formularza podrzędnego na MergeItems. Ponadto ustaw właściwość MergeOrder, aby elementy menu z obu menu pojawiały się w żądanej kolejności. Ponadto należy pamiętać, że po zamknięciu formularza nadrzędnego MDI każda z formularzy podrzędnych MDI zgłasza zdarzenie Closing przed wystąpieniem zdarzenia Closing dla elementu nadrzędnego MDI. Anulowanie zdarzenia Closing dziecka MDI nie zapobiegnie wywołaniu zdarzenia Closing rodzica MDI; jednak argument CancelEventArgs w zdarzeniu Closing rodzica MDI zostanie teraz ustawiony na wartość
true
. Możesz wymusić zamknięcie głównego okna MDI oraz wszystkich okien podrzędnych MDI, ustawiając argument CancelEventArgs na wartośćfalse
.
Zobacz także
.NET Desktop feedback