如何在WinForms中将上下文菜单分成多个列?

我有一个ContextMenuStip ,它包含一个动态生成的ToolStripMenuItem对象列表。 问题在于,当它们太多以适应屏幕时,在列表的顶部和底部出现微小的滚动按钮,并且滚动列表有点繁琐。

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


早些时候,这种行为从Windows中丢失 - 注意Windows Vista / 7使用树来显示开始菜单中的程序。 我怀疑这是因为它给用户提供了太多的数据和决策。

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

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

  • 如果不是,那么你应该考虑如何使用其他控件实现相同的选择。 带有过滤器的列表如何?
  • 是否有一些自然分组的项目? 如果是这样,你可以分成列表框,组合框或树。
  • 应用程序是否需要分成不同的模式?
  • 项目数量是多少? - 如果是的话,一个数字上/下控制可能工作
  • 一般的做法是简化用户必须随时做出的决策数量。

    花一些时间玩WinForms工具箱中的所有控件,看看有什么效果。

    链接地址: http://www.djcxy.com/p/27819.html

    上一篇: How to break a context menu into more than one column in Winforms?

    下一篇: Easiest way to split a string on newlines in .NET?