C# - A közös ős: a Menu osztály lehetőségei

Menükezelés 4. rész

forráskód letöltése
Menükezeléssel foglalkozó sorozatunk mostani részében a Menu osztályt vesszük szemügyre. Ez lesz az az osztály, mely közös őse a MenuItem, MainMenu, ContextMenu osztályoknak.
Mivel minden menüpontnak, illetve menünek lehetnek újabb menüpontjai ezért van szükség arra, hogy legyen egy közös ős, mely közös egy menüpontnak (MenuItem) épp úgy, mint egy menürendszert tároló objektumnak (MainMenu, ContextMenu).
Handle
Osztály: System.Windows.Forms.Menu
public IntPtr Handle {get;}
A Handle property-ből olvashatjuk ki a Windows azonosító kódját az adott menünek.
IsParent
Osztály: System.Windows.Forms.Menu
public virtual bool IsParent {get;}
Igaz, ha a menü tartalmaz almenüket, vagyis a MenuItems property-jében vannak menüpontok.
MdiListItem
Osztály: System.Windows.Forms.Menu
public MenuItem MdiListItem {get;}
Az MdiListItem olyan menüpontokat tartalmaz, melyben adott az MDI Child Form-ok listája.
MenuItems
Osztály: System.Windows.Forms.Menu
public Menu.MenuItemCollection MenuItems {get;}
E kollekció tárolja a menühöz tartozó menüpontokat.
GetContextMenu
Osztály: System.Windows.Forms.Menu
public ContextMenu GetContextMenu();
A helyzet érzékeny menü lekérdezésére szolgál a GetContextMenu függvény.
Visszatérési érték
ContextMenu osztályként megkapjuk a lekérdezés eredményét.
GetMainMenu
Osztály: System.Windows.Forms.Menu
public MainMenu GetMainMenu();
A fő menü lekérdezésére szolgál a GetMainMenu függvény
Visszatérési érték
MainMenu osztályként megkapjuk a lekérdezés eredményét.
MergeMenu
Osztály: System.Windows.Forms.Menu
public virtual void MergeMenu(
Menu menuSrc
);
Két menü összefűzésére szolgál a MergeMenu függvény.
Paraméterek
Menu menuSrc
A már meglévő menüpontokhoz hozzáfűzendő menüt kell megadnunk a menuSrc paraméterben.
A példaprogram
Egy helyzet érzékeny menüt programból is megjeleníthetünk nem csak a jobb gomb lenyomásával. Ehhez a ContextMenu osztály Show függvényét kell használnunk. Első paraméterként azt a kontrolt kell megadnunk, melynek területén szeretnénk a menüt megjeleníteni, másodikként pedig e kontrol kliens koordinátarendszerében kell megadnunk azt a pontot, ahová a megjelenő menü bal felső sarkát szeretnénk helyezni.
    private void button3_Click(object sender, System.EventArgs e)
    {
      ContextMenu cm = contextMenu1.GetContextMenu();
      cm.Show(panel2, new Point(30, 30));
    }

Menükezelés cikksorozat