C#控制菜单在多个显示器上的位置

3
我有两个显示器。当我在我的左侧显示器边缘附近访问C#应用程序的MenuStrip时,会出现一些奇怪的行为。
情况1:在这个截图中,当窗口靠近我的左显示器边缘时,我已经打开了SubMenu1。 SubMenu2显示在右显示器的最左边。
情况2:然后我将我的应用程序向左移动几个像素,现在SubMenu2出现在SubMenu1的左侧。
在我看来,情况2看起来更好。有没有办法强制C#始终像情况2那样显示菜单?
2个回答

2

除了编写自己的 MenuStrip 组件之外,没有办法指定 MenuItem 应该在哪一侧打开。

此外,除非这是软件的特定要求(我非常怀疑),否则不需要太担心它。


我不想指定一个特定的侧面来始终使用。然而,显然有一些启发式方法用于放置子菜单,我希望强制执行它,以避免在放置子菜单时留下间隙。 - mchr

1
您可以在程序中控制它,将SubMenu1的RightToLeft属性设置为RightToLeft.Yes。这会产生一些副作用,文本现在将右对齐,箭头也将指向正确的方向。您可能想要在“菜单”项的DropDownOpening事件处理程序中设置该属性。

但是如果表单在右窗口靠近左边缘,您现在不会遇到完全相同的问题吗? - Nobody
@rmx - 注意提到DropDownOpening事件。 - Hans Passant

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接