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

时间:2014-09-16 19:42:58

标签: c# winforms

MainMenu占用的区域不包含在表单的客户区域中。但是,MenuStrip占用的区域包含在窗体的客户区域中。如果我将在坐标0,0处绘制一个字符串,那么它将与MenuStrip重叠。

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

2 个答案:

答案 0 :(得分:1)

这很容易。

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

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

如果您有拖拽它们的麻烦,只需使用文档大纲。

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

答案 1 :(得分:1)

AFAIK,你只有两个选择 -

  1. 自己做数学。 (我的首选解决方案)。

  2. 使用简单面板作为所有控件的容器,菜单项本身除外。 (我的首选解决方案,知道我对winforms的了解,只会想到合理的选择)。

  3. 请注意,第二个选项与建议使用TableLayoutPanel的其他答案略有不同。 恕我直言,一个简单的面板就足够了......只要你照顾Z顺序。

    编辑 - 看到有关您之前已弃用的问题的其他评论..阅读完您的评论后,很明显您已经排除了这些选项..抱歉。