C# 如何在Winforms中将上下文菜单拆分为多个列?

C# 如何在Winforms中将上下文菜单拆分为多个列?,c#,.net,winforms,C#,.net,Winforms,我有一个ContextMenuStip,其中包含动态生成的ToolStripMenuItem对象列表。问题是,当屏幕上有太多的滚动按钮时,列表的顶部和底部会出现微小的滚动按钮,滚动列表有点乏味 如何使菜单自动分成两列或更多列,以便用户不必滚动?此行为不久前已从Windows中删除-请注意,Windows Vista/7使用树在“开始”菜单中显示程序。我怀疑这是因为它为用户提供了太多的数据和决策 您确定这是向用户展示选择的最佳方式吗? 如果是这样,那么您可能需要一个定制的菜单控件,这将是相当多的工

我有一个
ContextMenuStip
,其中包含动态生成的
ToolStripMenuItem
对象列表。问题是,当屏幕上有太多的滚动按钮时,列表的顶部和底部会出现微小的滚动按钮,滚动列表有点乏味


如何使菜单自动分成两列或更多列,以便用户不必滚动?

此行为不久前已从Windows中删除-请注意,Windows Vista/7使用树在“开始”菜单中显示程序。我怀疑这是因为它为用户提供了太多的数据和决策

您确定这是向用户展示选择的最佳方式吗?

如果是这样,那么您可能需要一个定制的菜单控件,这将是相当多的工作

    如果不是,那么你应该考虑如何 你可以用同样的方法实现同样的选择 其他控制。给我一份清单怎么样 过滤器
  • 有什么自然的分组吗 项目?如果是这样的话,你可以分成 列表框、组合框或树
  • 应用程序是否需要拆分 进入不同的模式
  • 项目编号是多少如果是的话 数字上/下控制可能有效
一般的方法是简化用户在任何时候必须做出的决策


花些时间玩一下WinForms工具箱中的所有控件,看看哪些控件工作得很好。

我不确定从Win98开始,在取消选中“开始属性”中的“滚动菜单”之后,我是否看到过菜单分成列。也就是说,我确实环顾了一些人,结果是空无一人。你可能需要这样做。这似乎是共识。