2010-09-02 8 views
8

Disons que j'ai un WinForm qui contient une barre de menu. Disons que l'un des éléments de cette bande de menu s'appelle Cars.Ajout par programme d'éléments à une bande de menus?

Chaque fois que j'ouvre mon WinForm, je veux ajouter un sous-élément sous Cars pour chaque voiture dans une table.

Est-ce possible avec le code?

Répondre

15
string[] cars = new string[]{"Volvo", "SAAB"}; 

foreach (var car in cars) 
{ 
    ToolStripItem subItem = new ToolStripMenuItem(car); 
    carsToolStripMenuItem.DropDownItems.Add(subItem); 
} 

Note: Si vous ajoutez un événement au sous-élément, assurez-vous désabonnez à cet événement si vous actualisez la liste à plusieurs reprises, sinon vous aurez une fuite de mémoire.

Note2: Si vous avez de nombreux éléments, vous devez utiliser DropDownItems.AddRange à la place pour des raisons de performances.

+1

Pour une raison quelconque, DropDownItems n'est pas une option disponible depuis intellitext ... Des idées? – sooprise

+0

@Soo, quel type est votre élément de menu Cars? Lorsque je crée un menu dans le concepteur, mon menu Cars est un ToolStripMenuItem. –

+0

Voir aussi ici pour des exemples sur le câblage des événements https://stackoverflow.com/questions/1608102/how-to-add-things-to-a-menustrip-programatically –

Questions connexes