Динамично добавляющий ToolStripMenuItems к MenuStrip (C#/Winforms)

Я предлагаю использовать тип uniqueidentifier вместо идентификационных данных. Я этот случай можно генерировать идентификаторы перед вставкой:

update B set NewID = NEWID()

insert into A(fname,lname,id) select fname,lname,NewID from B
19
задан IbrarMumtaz 9 May 2012 в 10:28
поделиться

2 ответа

Я создаю массив ToolStripMenuItems и заполняю этот массив элементами, которые я добавляю. Я создаю один метод для обработки событий щелчка, и он проверяет что-то уникальное для каждого элемента, который я создаю во время выполнения. Вы можете попробовать использовать свойства Name или Tag каждого ToolStripMenuItem . Затем используйте AddRange в том месте меню, в которое вы добавляете. Таким образом, ваш код может выглядеть примерно так:

private void BuildMenuItems()
{
    ToolStripMenuItem[] items = new ToolStripMenuItem[2]; // You would obviously calculate this value at runtime
    for (int i = 0; i < items.Length; i++)
    {
        items[i] = new ToolStripMenuItem();
        items[i].Name = "dynamicItem" + i.ToString();
        items[i].Tag = "specialDataHere";
        items[i].Text = "Visible Menu Text Here";    
        items[i].Click += new EventHandler(MenuItemClickHandler);
    }

    myMenu.DropDownItems.AddRange(items);
}

private void MenuItemClickHandler(object sender, EventArgs e)
{
    ToolStripMenuItem clickedItem = (ToolStripMenuItem)sender;
    // Take some action based on the data in clickedItem
}
35
ответ дан 30 November 2019 в 03:38
поделиться

Что не так с:

ToolStripItem item = toolStripItems.Add("MyItem");
item.Click += new EventHandler(....);

Я что-то упускаю?

1
ответ дан 30 November 2019 в 03:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: