Как добавить событие в подпункт на contextmenustrip? C # - PullRequest
0 голосов
/ 06 мая 2011
for (int i = 0; i < client.Folders.Count; i++)
        {

            (ContextMenuListView.Items[1] as ToolStripMenuItem).DropDownItems.Add(client.Folders[i].Name);//add Folder to Move To
            (ContextMenuListView.Items[2] as ToolStripMenuItem).DropDownItems.Add(client.Folders[i].Name);                
        }

как получить подпункт в пунктах [1] или пунктах [2]?

1 Ответ

1 голос
/ 06 мая 2011

ToolStripItemCollection.Add(string) (DropDownItems.Add ()) вернет новый ToolStripItem ...

с другой стороны, все остальные подпункты ссылаются на ToolStripItemCollection DropDownItems

так что простой способ получить два созданных предмета:

(ContextMenuListView.Items[1] as ToolStripMenuItem).DropDownItems.Add(client.Folders[i].Name);
(ContextMenuListView.Items[2] as ToolStripMenuItem).DropDownItems.Add(client.Folders[i].Name);

станет:

ToolStripItem firstItem = (ContextMenuListView.Items[1] as ToolStripMenuItem).DropDownItems.Add(client.Folders[i].Name);
ToolStripItem secondItem = (ContextMenuListView.Items[2] as ToolStripMenuItem).DropDownItems.Add(client.Folders[i].Name);

или для доступа ко всем подпунктам:

foreach(ToolStripItem i in (ContextMenuListView.Items[1] as ToolStripMenuItem).DropDownItems.OfType<ToolStripItem>())
{
   //...
}

или для доступа к определенному подпункту:

var specificItem = (ContextMenuListView.Items[1] as ToolStripMenuItem).DropDownItems.Item[0];
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...