我目前正在做一个小项目,需要在某些上下文菜单项中进行一些重复。菜单从右键单击上下文菜单开始,并以不同的颜色分支出来,然后是对象。根据所选的颜色和对象,表单上的对象会发生变化。这很混乱,但不幸的是,我找不到更简单的方法来完成这项工作(谢天谢地,它只需要为一个菜单完成)。
我已经将颜色创建为菜单项并添加了它们,但每种颜色都重复相同的 8 个对象:
foreach (MenuItem i in colors.MenuItems)
{
MenuItem one = new MenuItem();
one.Text = "One";
MenuItem two = new MenuItem();
two.Text = "Two";
MenuItem three = new MenuItem();
three.Text = "Three";
MenuItem four = new MenuItem();
four.Text = "Four";
MenuItem five = new MenuItem();
five.Text = "Five";
MenuItem six = new MenuItem();
six.Text = "Six";
MenuItem seven = new MenuItem();
seven.Text = "Seven";
MenuItem eight = new MenuItem();
eight.Text = "Eight";
i.MenuItems.Add(one);
i.MenuItems.Add(two);
i.MenuItems.Add(three);
i.MenuItems.Add(four);
i.MenuItems.Add(five);
i.MenuItems.Add(six);
i.MenuItems.Add(seven);
i.MenuItems.Add(eight);
}
首先,我认为在 foreach 循环中创建所有对象菜单项是低效的,所以我将它们移到它之前。当我这样做时,对象只被添加到最终颜色,而不是全部。这似乎很奇怪,如果有人能解释为什么会发生这种情况,我将不胜感激。
其次,计划是根据用户选择的菜单选项来更改被右键单击的对象。除了为每个单独的菜单项设置 Menu.Click 事件之外,还有更简单的方法来选择菜单项吗?
任何帮助将不胜感激。
在此先感谢,鲍勃