Ich arbeite in Windows Forms in C#. Ich habe eine Methode, wo ich MenuItem
s zum ContextMenu
bin Hinzufügen und ich implementiert, um die Ereignishandler für die MenuItem
s wie folgt:So behandeln Sie Menüeinträge in C# zum Übergeben von Werten
public void Form1_Load()
{
int index =0;
ArrayList ar = new ArrayList();
ContextMenu cm = new ContextMenu();
cm.Name = "Test";
MenuItem mi = new MenuItem("All");
mi.Click += new EventHandler(mi_All);
}
private void mi_All(object sender,EventArgs e)
{
//here I want to access the arraylist and integer specified in above method
}
Wie dies geschehen kann? Eine mögliche Lösung ist, die ArrayList
und int
als globale Variablen zu deklarieren, aber ich habe viele Variablen wie folgt. Wenn ich diesen Ansatz nehme, werden die Variablen leben, bis das Formular entsorgt wird. Das funktioniert also nicht. Gibt es einen anderen Weg, dies zu erreichen?
Die Frage ist, warum tun müssen Sie die Array-Liste zugreifen? Erwägen Sie, die Eigenschaft tag des Menüelements für zusätzlichen Speicher zu verwenden. –