none
ContextMenuStrip如何显示成多列菜单 RRS feed

  • 问题

  • 我的一个ContextMenuStrip中选项相当多,但是ContextMenuStrip总是把菜单显示为单列,多余的项隐藏在箭头里,操作非常不方便。
    如何可以让ContextMenuStrip像WinXP的开始菜单那样,可以显示成多列?
    我试着调整了它的LayoutStyle,但是不管选成什么,它都没有任何效果。

    2010年10月3日 20:46

答案

  • Windows User Experience Guide 中定义的标准菜单行为,是单列显示的,垂直或者水平的菜单项。如果菜单项数目超过当前可用于显示的屏幕范围,对于水平菜单它将被分成多行,对于垂直菜单它将会显示上下箭头。Windows UX Guide 并没有定义支持多列的“垂直菜单”,因此,作为其实现,ContextMenuStrip 不会支持这种类型的菜单。
    Mark Zhou
    2010年10月4日 9:51
  • 你可以自定义一个用户控件,来实现你所要的菜单样式,
    http://blog.csdn.net/zx13525079024
    2010年10月7日 0:44

全部回复

  • 还有,我菜单项比较多的那个并不在所弹出的ContextMenuStrip第一层,而是在第一层的其中一个选项的DropDownItems中。我期望的是,菜单的任意一层都能在空间不足的情况下自动排列成多列的。
    2010年10月3日 20:51
  • Windows User Experience Guide 中定义的标准菜单行为,是单列显示的,垂直或者水平的菜单项。如果菜单项数目超过当前可用于显示的屏幕范围,对于水平菜单它将被分成多行,对于垂直菜单它将会显示上下箭头。Windows UX Guide 并没有定义支持多列的“垂直菜单”,因此,作为其实现,ContextMenuStrip 不会支持这种类型的菜单。
    Mark Zhou
    2010年10月4日 9:51
  • 那么如果我想手动实现这个功能,该怎样做?
    2010年10月6日 9:03
  • 你可以自定义一个用户控件,来实现你所要的菜单样式,
    http://blog.csdn.net/zx13525079024
    2010年10月7日 0:44