.net MenuStrip控件是否可以将其LayoutStyle设置为StackWithOverflow?

.net MenuStrip控件是否可以将其LayoutStyle设置为StackWithOverflow?,.net,winforms,menustrip,.net,Winforms,Menustrip,我创建了一个带有菜单提示的简单表单。MenuStrip的布局样式设置为HorizontalStackWithOverflow(默认设置) 根据,其属性继承自ToolStrip。LayoutStyle的一个可能值是HorizontalStackWithOverflow,这也是默认设置。此设置应提供其Overflow属性设置为AsNeeded的项目,并将其移动到溢出按钮 当我运行应用程序并调整窗体大小使菜单无法完全适应时,这种情况不会发生。我已将ToolStripMenuItems Overflow

我创建了一个带有菜单提示的简单表单。MenuStrip的
布局样式
设置为
HorizontalStackWithOverflow
(默认设置)

根据,其属性继承自ToolStrip。LayoutStyle的一个可能值是
HorizontalStackWithOverflow
,这也是默认设置。此设置应提供其
Overflow
属性设置为AsNeeded的项目,并将其移动到溢出按钮

当我运行应用程序并调整窗体大小使菜单无法完全适应时,这种情况不会发生。我已将ToolStripMenuItems Overflow属性设置为“根据需要”,但当我调整窗体大小时,右侧的菜单项就消失了


文档是否有误,并且只能在ToolStrip上获得溢出按钮,而不能在MenuStrip上获得溢出按钮?或者为了让事情顺利进行,我还需要做些什么?还是我只是误读了文档?

ToolStrip类有很多这样的头发。我认为这里合适的选择是LayoutStyle=Flow来包装菜单项。这就是内置Windows菜单的工作方式


但是,您必须注意由此引起的布局问题。在窗体上放置一个带有Dock=Fill的面板,这样当菜单条需要更多空间时,所有控件都会自动向下移动。

我也遇到了同样的问题,并找到了一种方法让它工作

在菜单提示上,您需要设置:

myMenuStrip.CanOverflow = True
默认值为false

然后,对于每个菜单项,您需要设置:

myToolStripMenuItem.Overflow = ToolStripItemOverflow.AsNeeded

默认为ToolStripItemOverflow。从不

参考资料:


使用LayoutStyle=Flow,至少菜单项不再消失。但你的意思是在菜单上不可能使用溢出按钮吗?所以,要么文档是错误的,要么它是一个bug?不确定这是否重要,它就是不起作用。我百分之九十五肯定你做不到。您可以在connect.microsoft.com上提交反馈报告。然而,在过去的几年里,他们一直以“不会修复”结束Winforms的bug报告。你有一个很好的解决方法,我建议你使用它。它很有效:
myMenuStrip.CanOverflow=True
才是真正的关键@CimeCe:考虑标记作为已接受的答案。
myToolStripMenuItem.Overflow = ToolStripItemOverflow.Always