如何将MenuStrip占用的区域从表单的客户端区域中排除

本文关键字:区域 表单 客户端 排除 MenuStrip | 更新日期: 2023-09-27 18:22:02

MainMenu占用的区域被排除在表单的客户端区域之外。但是MenuStrip占用的区域包含在表单的客户区域中。因此,如果我要在坐标0、0处绘制字符串,则它将被MenuStap重叠。

如何将MenuStrip占用的区域从客户端区域中排除?

如何将MenuStrip占用的区域从表单的客户端区域中排除

这很容易。

  • 创建TableLayoutPanel
  • 设置停靠:填充
  • 删除最后一列。现在您只有1列
  • 将row1设置为23-25px,将row2设置为自动调整大小。

  • 现在,将菜单拖放到第一个单元格/行和"客户端区域"(面板?)到第二个。

如果您在拖放时遇到一些问题,请使用文档大纲。

编辑:您是否尝试过简单的menustrip1.SendToBack();来更改z顺序?或者字符串的Control.BringToFront();等。?

AFAIK,您只有两个选项-

  1. 你自己计算。(不是我的首选解决方案)。

  2. 使用一个简单的面板作为所有控件的容器,菜单项本身除外。(我的首选解决方案,知道我对winforms的了解,这是我脑海中唯一合理的选择)。

请注意,第二个选项与建议使用TableLayoutPanel的其他答案略有不同。。IMHO,一个简单的小组就足够了。。只要你注意Z顺序。

编辑-看到您的问题上的其他评论,这些评论之前已经崩溃。。看完你的评论后,很明显你已经排除了这些选项。。很抱歉