gpt4 book ai didi

c# - 加入上下文菜单

转载 作者:太空狗 更新时间:2023-10-29 23:17:05 24 4
gpt4 key购买 nike

如果我有一个上下文菜单,是否可以将它加入另一个菜单?所以你得到:

  Menu 1 Item 1
Menu 1 Item 2
Menu 1 Item N
---------
Menu 2 Item 1
Menu 2 Item 2
Menu 2 Item N

让我们举一个类似记事本的程序的例子。菜单中存在重复,因为在编辑菜单和编辑控件上下文菜单(剪切、复制、粘贴、全选...)中都出现了一组标准工具。

我想要一个名为 ClipboardTools 的菜单,它会同时出现在“编辑”和“控件”上下文菜单中,而无需多次创建项目。当然,在这种情况下,重复并没有那么糟糕,但我必须处理出现在 3-4 个不同菜单中的较大菜单,最好不要作为子菜单。

最佳答案

是的。由于每个 menuItem 都是一个单独的控件,您可以将相同的 menuItem 添加到两个菜单;

  var joinedMenuItem = new System.Windows.Forms.ToolStripMenuItem();
menu1.Items.Add(joinedMenuItem );
menu2.Items.Add(joinedMenuItem );

这与您可以将项目从一个菜单添加到另一个菜单的方式相同;

  menu1.Items.AddRange(menu2.Items);

是时候说了:
ToolStripMenu 子项是它的 Items 属性。
ToolStripMenuItem 子项位于 DropDownItems 属性中。

因此,如果您有两个顶级菜单项(如文件和编辑)并且您想要删除共享子项:

  foreach (var item in topMenuItem2.DropDownItems)
{
topMenuItem1.DropDownItems.Remove(item);
}

在现实生活中,如果想要这样灵活的菜单系统,很可能会创建菜单项的总列表。也许还有按类别分类的菜单项的子集。然后将来自此类列表或集合的菜单项添加到显示的菜单中。

例如,您可以为用户提供自定义菜单或创建自己的自定义菜单部分的可能性。正如在 Visual Studio 中完成的那样。

关于c# - 加入上下文菜单,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9432841/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com