Ehhez a MenuItemCollection osztály ismeretére lesz szükségünk, melyben megtaláljuk azokat a funkciókat, tulajdonságokat, melyek e feladatok elvégzéséhez szükségszerűek.
MenuItemCollection osztály típusú például a MainMenu, ContextMenu Items nevű property-je, melyen keresztül az adott menürendszernek a menüpontjai érhetőek el.

Count
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public int Count {get;}
A Count property arról árulkodik, hogy hány eleme van az adott menü kollekciónak.

Item
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual MenuItem this[int index] {get;}
Az Item az osztály indexelője. Ezen keresztül a menüponthoz tartozó almenüpontokat kapjuk MenuItem osztály típusban.

Add
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual int Add(
MenuItem item
);
Új menüpontot létrehozni az Add függvénnyel tudunk.
Paraméterek
MenuItem item
Az item paraméterben adhatjuk meg MenuItem osztály típusban azt a menüpontot, melyet a meglévőkhöz kívánunk hozzáadni.
Visszatérési érték
Kapunk egy int típusú számot, mely a hozzáadott menüpont kollekción belüli sorszámát adja vissza.

Add
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual MenuItem Add(
string caption
);
Új menüpontot létrehozni az Add függvénnyel tudunk.
Paraméterek
string caption
A menüpont feliratát a caption paraméterben adhatjuk meg.
Visszatérési érték
Kapunk egy MenuItem típusú osztályt, melyen keresztül a hozzáadott menüpontot érhetjük el és annak további tulajdonságait befolyásolhatjuk.

Add
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual int Add(
int index,
MenuItem item
);
Új menüpontot létrehozni az Add függvénnyel tudunk.
Paraméterek
int index
Az index paraméterben határozhatjuk meg, hogy a létrehozandó új menüpont hol helyezkedjen el a kollekción belül.
MenuItem item
Az item paraméterben adhatjuk meg MenuItem osztály típusban azt a menüpontot, melyet a meglévőkhöz kívánunk hozzáadni.
Visszatérési érték
Kapunk egy int típusú számot, mely a hozzáadott menüpont kollekción belüli sorszámát adja vissza.

Add
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual MenuItem Add(
string caption,
EventHandler onClick
);
Új menüpontot létrehozni az Add függvénnyel tudunk.
Paraméterek
string caption
A menüpont feliratát a caption paraméterben adhatjuk meg.
EventHandler onClick
A menüpont kiválasztásakor lefutó függvényt az onClick paraméterben adhatjuk át.
Visszatérési érték
Kapunk egy MenuItem típusú osztályt, melyen keresztül a hozzáadott menüpontot érhetjük el és annak további tulajdonságait befolyásolhatjuk.

Add
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual MenuItem Add(
string caption,
MenuItem[] items
);
Új menüpontot létrehozni az Add függvénnyel tudunk.
Paraméterek
string caption
A menüpont feliratát a caption paraméterben adhatjuk meg.
MenuItem[] items
Az items paraméterben megadhatunk egy tömböt, mely az új menüpontokat tárolja.
Visszatérési érték
Kapunk egy MenuItem típusú osztályt, melyen keresztül a hozzáadott menüpontot érhetjük el és annak további tulajdonságait befolyásolhatjuk.

AddRange
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual void AddRange(
MenuItem[] items
);
Új menüpontokat létrehozni az AddRange függvénnyel tudunk.
Paraméterek
MenuItem[] items
Az items paraméterben megadhatunk egy tömböt, mely az újonnan hozzáadandó menüpontokat tárolja.

Clear
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual void Clear();
Törli a kollekció összes létező menüpontját.

Contains
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public bool Contains(
MenuItem value
);
Ellenőrizhetjük, hogy egy menüpont már létezik-e a menü kollekcióban vagy még nem.
Paraméterek
MenuItem value
Az ellenőrizendő menüpontot egy MenuItem osztály segítségével írhatjuk le a value paraméterben.
Visszatérési érték
Igaz, ha a megadott menüpont már létezik.

CopyTo
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public void CopyTo(
Array dest,
int index
);
Egy menü kollekció elemeit másolja egy tömbbe.
Paraméterek
Array dest
A tömb, melybe a másolást el kell végezni.
int index
A menü kollekcióban annak a menüpontnak a sorszáma, ahonnan a másolást kezdeni kell.

GetEnumerator
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public IEnumerator GetEnumerator();
A GetEnumerator segítségével egy IEnumerator interfészt kérhetünk a menü kollekcióról, melynek segítségével könnyedén végigmehetünk az összes menüponton.
Visszatérési érték
IEnumerator típusú objektumot kapunk.

IndexOf
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public int IndexOf(
MenuItem value
);
Egy menüpont sorszámának meghatározására szolgál az IndexOf függvény.
Paraméterek
MenuItem value
A keresendő menüpontot leíró MenuItem osztály.
Visszatérési érték
A keresett menüpont sorszáma, vagy ha nincs találat, akkor -1.

Remove
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual void Remove(
MenuItem item
);
Egy menüpont eltávolításához a Remove függvényt használhatjuk.
Paraméterek
MenuItem item
A törlendő menüpontot leíró MenuItem osztály.

RemoveAt
Osztály: System.Windows.Forms.Menu.MenuItemCollection
public virtual void RemoveAt(
int index
);
Egy menüpont eltávolításához a RemoveAt függvényt használhatjuk.
Paraméterek
int index
A törlendő menüpont kollekcióbeli sorszámát az index paraméter adja meg.
A példaprogram
Nézzük most miként is megy mindez a gyakorlatban.
Első példánk egy ListBox-ba kérdezi le a menüpont elemeinek feliratát. Ehhez csak egy ciklusra van szükségünk, mely végigmegy a tömbön.
private void button1_Click(object sender, System.EventArgs e)
{
listBox1.Items.Clear();
for (int i=0; i<mic.Count; i++)
{
listBox1.Items.Add(mic[i].Text);
}
}
A második példában azt láthatjuk, hogy miként tudunk egy új menüpontot létrehozni a már meglévőkhöz az Add függvény segítségével.
private void button2_Click(object sender, System.EventArgs e)
{
mic.Add(DateTime.Now.ToString());
}
A harmadik példában egy ContextMenu-be másoljuk a MainMenu menüpontjait, majd a ContextMenu-t meg is jelenítjük a ListBox felett. A másoláshoz először egy MenuItem elemeket tároló tömbbe helyezzük a menüpontokat a CopyTo függvénnyel, majd az AddRange segítségével egy lépésben hozzáadjuk a ContextMenu-höz az e tömbbe került menüpontokat.
private void button3_Click(object sender, System.EventArgs e)
{
MenuItem[] mi = new MenuItem[mic.Count];
mic.CopyTo(mi, 0);
contextMenu1.MenuItems.AddRange(mi);
contextMenu1.Show(listBox1, new Point(20, 20));
}
Negyedik példában az IEnumerator interfész felhasználására láthatunk példát. Ennek segítségével lekérdezzük a már meglévő menüpontok azonosító kódját és szövegüket.
private void button4_Click(object sender, System.EventArgs e)
{
listBox1.Items.Clear();
MenuItem mi;
IEnumerator ie = mic.GetEnumerator();
while (ie.MoveNext())
{
mi = (MenuItem)ie.Current;
listBox1.Items.Add(mi.Handle.ToString()+" "+mi.Text);
}
}
Végső példánkban töröljük a harmadik menüpontot a menürendszerből.
private void button4_Click_1(object sender, System.EventArgs e)
{
mic.RemoveAt(2);
}