我使用MenuStrip创建一个简单的表单。 MenuStrip的LayoutStyle
设置为HorizontalStackWithOverflow
(默认值)。
根据MSDN reference on MenuStrip,其LayoutStyle属性继承自ToolStrip。 LayoutStyle的一个可能值是HorizontalStackWithOverflow
,它也是默认设置。此设置应提供将Overflow
属性设置为AsNeeded的项目移动到溢出按钮。
当我运行应用程序并调整表单大小以使菜单不完全适合时,这不会发生。我已将ToolStripMenuItems溢出属性设置为AsNeeded,但是当我调整窗体大小时,右侧的菜单项就会消失。
文档是否错误,您是否只能在ToolStrip上获得溢出按钮而不是在MenuStrip上?或者,为了让事情有效,我还需要做些什么吗?或者我只是误读了文档?
答案 0 :(得分:8)
我遇到了同样的问题,并找到了让它运转的方法。
在MenuStrip上,您需要设置:
myMenuStrip.CanOverflow = True
默认值为false。
然后,您需要设置每个MenuItem:
myToolStripMenuItem.Overflow = ToolStripItemOverflow.AsNeeded
或
myToolStripMenuItem.Overflow = ToolStripItemOverflow.Always
默认为ToolStripItemOverflow.Never
参考文献:
答案 1 :(得分:6)
ToolStrip类有很多像这样的头发。我认为这里适当的选择是LayoutStyle = Flow来获取菜单项。这是内置Windows菜单的工作方式。
然而,您必须处理由此引起的布局问题。使用Dock = Fill将面板放在窗体上,以便当菜单条需要更多空间时,所有控件都会自动向下移动。