Winfrom组件Dock=Fill时掩盖或被覆盖的处理方案

原创
小哥 3年前 (2022-11-07) 阅读数 10 #大杂烩

问题描述

今天在Winfrom我的控制设置遇到问题。Dock为Fill始终由以下控件覆盖。

灰色的是A控件,下面的按钮是B控件,A控件的Dock设置为Fill,B控件的Dock设置为Bottom从图中可以看出,B控件把A控件覆盖了它的一部分。我想要的效果是,这两个控件不应相邻覆盖。


原因分析:

这是控件的插入顺序,也就是说,你的A控件被B控制范围,即B控件比A控件首先添加到此窗体。


解决方案:

第一种是我经常使用的方法,也是最方便也是唯一必要的。CtrlC、CtrlV没关系。

  1. 首先找到你的表格,下面有一张。Designer.cs( 表单设计器生成的代码文件。
  2. 进到Designer.cs搜索文件后 this.Controls.Add
    这里把this.Controls.Add(this.A);放到this.Controls.Add(this.B);以上可以解决问题,直接看到效果。

    这是我想要的最终效果。另一种愚蠢的方法是删除控件并按顺序重新创建它们。这更麻烦。如果有更多控件,重置各种属性也是浪费时间。
版权声明

所有资源都来源于爬虫采集,如有侵权请联系我们,我们将立即删除