Программное добавление элементов в полосу меню?

Допустим, у меня есть WinForm, в котором есть полоса меню. Допустим, один из пунктов этой полосы меню называется Cars.

Всякий раз, когда я открываю свою WinForm, я хочу добавить подпункт «Автомобили» для каждой машины в таблице.

Возможно ли это сделать с помощью кода?


person sooprise    schedule 02.09.2010    source источник


Ответы (1)


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

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

Примечание. Если вы добавляете событие в подэлемент, обязательно отмените подписку на это событие, если вы постоянно обновляете список, иначе произойдет утечка памяти.

Примечание 2. Если у вас много элементов, используйте DropDownItems.AddRange из соображений производительности.

person Albin Sunnanbo    schedule 02.09.2010
comment
По какой-то причине DropDownItems недоступен в интеллектуальном тексте... Есть идеи? - person sooprise; 03.09.2010
comment
@Soo, какого типа ваш пункт меню Cars? Когда я создаю меню в дизайнере, мое меню Cars представляет собой ToolStripMenuItem. - person Albin Sunnanbo; 03.09.2010
comment
См. также здесь примеры подключения событий полоса меню программно"> stackoverflow.com/questions/1608102/ - person Matthew Lock; 15.06.2017