Udostępnij za pośrednictwem


Scalanie elementów menu w kontrolce MenuStrip formularzy systemu Windows

Jeśli masz aplikację interfejsu wielu dokumentów (MDI), możesz scalić elementy menu lub całe menu z formularza podrzędnego do menu formularza nadrzędnego.

W tym temacie opisano podstawowe pojęcia związane z scalaniem elementów menu w aplikacji MDI.

Ogólne pojęcia

Procedury scalania obejmują zarówno element docelowy, jak i kontrolę źródła:

  • Elementem docelowym jest kontrolka MenuStrip w formularzu głównym lub nadrzędnym MDI, do którego scalasz elementy menu.

  • Źródło jest kontrolką MenuStrip w formularzu podrzędnym MDI zawierającym elementy menu, które chcesz scalić z menu docelowym.

Właściwość MdiWindowListItem identyfikuje element menu, którego lista rozwijana zostanie wypełniona tytułami formularzy podrzędnych MDI, należących do bieżącego formularza nadrzędnego MDI. Na przykład zazwyczaj są wyświetlane elementy podrzędne MDI, które są obecnie otwarte w menu okna .

Właściwość IsMdiWindowListEntry określa, które elementy menu pochodzą z MenuStrip w formularzu podrzędnym MDI.

Elementy menu można scalić ręcznie lub automatycznie. Elementy menu scalają się w ten sam sposób dla obu metod, ale scalanie jest aktywowane inaczej, zgodnie z opisem w sekcjach "Scalanie ręczne" i "Automatyczne scalanie" w dalszej części tego tematu. Zarówno w ręcznym, jak i automatycznym scalaniu każda akcja scalania ma wpływ na następną akcję scalania.

MenuStrip scalanie przenosi elementy menu z jednego ToolStrip do drugiego, zamiast ich klonowania, jak miało to miejsce w przypadku MainMenu.

Wartości akcji scalania

Akcję scalania w elementach menu można ustawić w źródłowym MenuStrip przy użyciu właściwości MergeAction.

W poniższej tabeli opisano znaczenie i typowe użycie dostępnych akcji scalania.

Wartość MergeAction Opis Typowe użycie
Append (Ustawienie domyślne) Dodaje element źródłowy na końcu kolekcji elementu docelowego. Dodawanie elementów menu na końcu menu po aktywowaniu części programu.
Insert Dodaje element źródłowy do kolekcji elementu docelowego w lokalizacji określonej przez właściwość MergeIndex ustawioną na elemencie źródłowym. Dodawanie elementów menu do środka lub początku menu po aktywowaniu części programu.

Jeśli wartość MergeIndex jest taka sama dla obu elementów menu, są one dodawane w odwrotnej kolejności. Ustaw MergeIndex odpowiednio, aby zachować oryginalną kolejność.
Replace Znajduje dopasowanie tekstu lub używa wartości MergeIndex, jeśli nie znaleziono dopasowania tekstu, a następnie zamienia pasujący element menu docelowego na element menu źródłowego. Zastępowanie elementu menu docelowego elementem menu źródłowym o tej samej nazwie, który wykonuje coś innego.
MatchOnly Znajduje dopasowanie tekstu lub używa wartości MergeIndex, jeśli nie znaleziono dopasowania tekstu, a następnie dodaje wszystkie elementy listy rozwijanej ze źródła do obiektu docelowego. Tworzenie struktury menu, która wstawia lub dodaje elementy menu do podmenu, lub usuwa elementy menu z podmenu. Można na przykład dodać element menu z podrzędnego MDI do głównego menu MenuStripZapisz jako....

MatchOnly umożliwia przechodzenie przez strukturę menu bez podejmowania żadnych akcji. Umożliwia ona ocenę kolejnych elementów.
Remove Znajduje dopasowanie tekstu lub używa wartości MergeIndex, jeśli nie znaleziono dopasowania tekstu, a następnie usuwa element z elementu docelowego. Usunięcie elementu menu z docelowego MenuStrip.

Scalanie ręczne

Tylko elementy sterujące MenuStrip uczestniczą w automatycznym scalaniu. Aby połączyć elementy innych kontrolek, takich jak kontrolki ToolStrip i StatusStrip, należy je scalić ręcznie, wywołując metody Merge i RevertMerge w kodzie zgodnie z potrzebami.

Automatyczne scalanie

Można użyć automatycznego scalania dla aplikacji MDI, aktywując formularz źródłowy. Aby użyć MenuStrip w aplikacji MDI, ustaw właściwość MainMenuStrip na MenuStrip docelową, aby scalanie akcji wykonywanych na źródłowej MenuStrip zostało odzwierciedlone w docelowej MenuStrip.

Automatyczne scalanie można wyzwolić, aktywując MenuStrip w źródle MDI. Po aktywacji źródło MenuStrip jest scalane z docelowym obiektem MDI. Gdy nowy formularz stanie się aktywny, scalanie zostanie cofnięte w ostatnim formularzu i uruchomione w nowym formularzu. To zachowanie można kontrolować, ustawiając właściwość MergeAction zgodnie z potrzebami w każdym ToolStripItemi ustawiając właściwość AllowMerge dla każdego MenuStrip.

Zobacz też