.net - MenuStrip 控件能否将其 LayoutStyle 设置为 StackWithOverflow?

标签 .net winforms menustrip

我使用 MenuStrip 创建了一个简单的表单。 MenuStrip 的 LayoutStyle 设置为 Horizo​​ntalStackWithOverflow(默认值)。

根据MSDN reference on MenuStrip ,其 LayoutStyle属性继承自 ToolStrip。 LayoutStyle 的可能值之一是 Horizo​​ntalStackWithOverflow,这也是默认设置。此设置应将 Overflow 属性设置为 AsNeeded 的项目移至溢出按钮。

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

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

最佳答案

我刚刚遇到了同样的问题,并找到了让它工作的方法。

在MenuStrip上您需要设置:

myMenuStrip.CanOverflow = True

默认值为 false。

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

myToolStripMenuItem.Overflow = ToolStripItemOverflow.AsNeeded

myToolStripMenuItem.Overflow = ToolStripItemOverflow.Always

默认为 ToolStripItemOverflow.Never

引用文献:

MenuStrip.CanOverflow

ToolStripMenuItem.Overflow

关于.net - MenuStrip 控件能否将其 LayoutStyle 设置为 StackWithOverflow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4726551/

相关文章:

c# - 如何调用其他事件方法?

具有硬颜色过渡的.NET画笔(类似于渐变)

c# - 如何从 Request.CreateErrorResponse 读取错误信息?

c# - 如何将文本转换为日期?

c# - 有没有办法将 ContextMenuStrip 分配给 ListViewItem?

c# - "Tool tip"是否被 ToolStripItems 覆盖(如果它们有下拉项)?

c# - 如何查找带有名称的 toolstripmenuItem

.net - 在 64 位操作系统上以 32 位运行 AnyCPU 应用程序

c# - 线程安全共享对象过期和重新初始化

c# - 加载时的 Winforms ListView ItemCheck