5

我用 MenuStrip 创建了一个简单的表单。MenuStripLayoutStyle设置为HorizontalStackWithOverflow(默认)。

根据MenuStrip 上的 MSDN 参考,它的LayoutStyle属性继承自 ToolStrip。LayoutStyle 的可能值之一是HorizontalStackWithOverflow它也是默认设置。此设置应将Overflow属性设置为 AsNeeded 的项目移动到溢出按钮。

当我运行应用程序并调整表单大小以使菜单不完全适合时,这种情况不会发生。我已将 ToolStripMenuItems 溢出属性设置为 AsNeeded,但是当我调整表单大小时,右侧的菜单项就会消失。

文档是否错误,您只能在 ToolStrip 而不是 MenuStrip 上获得溢出按钮吗?或者我还需要做些什么才能让事情正常进行吗?还是我只是误读了文档?

4

2 回答 2

8

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

在 MenuStrip 上,您需要设置:

myMenuStrip.CanOverflow = True

默认值为假。

然后对于您需要设置的每个 MenuItem:

myToolStripMenuItem.Overflow = ToolStripItemOverflow.AsNeeded

或者

myToolStripMenuItem.Overflow = ToolStripItemOverflow.Always

默认值为 ToolStripItemOverflow.Never

参考:

MenuStrip.CanOverflow

ToolStripMenuItem.Overflow

于 2011-10-14T00:26:56.643 回答
6

ToolStrip 类有很多这样的问题。我认为这里的相应选择是layoutstyle = flow以获取包裹的菜单项。这是内置 Windows 菜单的工作方式。

但是,您必须处理由此引起的布局问题。使用 Dock = Fill 在表单上放置一个面板,以便在菜单条需要更多空间时自动向下移动所有控件。

于 2011-01-18T16:58:13.423 回答