窗体主控件Dock属性设置为fill后,被工具条压住了,怎么办?
2013-04-20 10:55
393 查看
之前经常遇到这种情况,如图:
以前不知道怎么解决,都是通过重新建立窗体,先添加工具条,然后再添加主控件来解决的。今天又一次遇到了,想想有必要研究一下这个问题了。通常,我们想要的结果应该是这样的:
因为出现这个问题,基本都是先添加了主控件,并且设置Dock为fill,之后又加入了工具栏,因此我初步判断这个问题与控件的添加顺序有关,而控件的添加顺序取决于代码中调用Add方法的顺序,因此首先实验了一下,(方法1:)打开相应窗体的Designer.cs文件,在InitializeComponent方法的最后找到往窗体上添加控件的语句,如:
调整一下顺序,改为:
保存后,回到设计界面,发现正常了。
虽然问题解决了,但是这样好像有点麻烦,进一步思考。既然是被压在下面,那么是不是跟叠加顺序有关呢,于是恢复原始问题状态,(方法2:)右键工具栏,选择“置于底层”,发现窗体绘制正确了。
根据以上实验,得出以下结论:
1. C#窗体控件的叠加顺序取决于代码中控件的添加顺序,后添加的居于之前添加的控件的上层;
2. 控件的Dock填充顺序是从底层控件开始依次往上,上层控件填充之前控件填充后剩余的空间;
以前不知道怎么解决,都是通过重新建立窗体,先添加工具条,然后再添加主控件来解决的。今天又一次遇到了,想想有必要研究一下这个问题了。通常,我们想要的结果应该是这样的:
因为出现这个问题,基本都是先添加了主控件,并且设置Dock为fill,之后又加入了工具栏,因此我初步判断这个问题与控件的添加顺序有关,而控件的添加顺序取决于代码中调用Add方法的顺序,因此首先实验了一下,(方法1:)打开相应窗体的Designer.cs文件,在InitializeComponent方法的最后找到往窗体上添加控件的语句,如:
this.Controls.Add(this.toolStrip1); this.Controls.Add(this.tabControl1);
调整一下顺序,改为:
this.Controls.Add(this.tabControl1); this.Controls.Add(this.toolStrip1);
保存后,回到设计界面,发现正常了。
虽然问题解决了,但是这样好像有点麻烦,进一步思考。既然是被压在下面,那么是不是跟叠加顺序有关呢,于是恢复原始问题状态,(方法2:)右键工具栏,选择“置于底层”,发现窗体绘制正确了。
根据以上实验,得出以下结论:
1. C#窗体控件的叠加顺序取决于代码中控件的添加顺序,后添加的居于之前添加的控件的上层;
2. 控件的Dock填充顺序是从底层控件开始依次往上,上层控件填充之前控件填充后剩余的空间;
相关文章推荐
- 窗体主控件Dock属性设置为Fill后,被工具条盖住了
- FORM窗体 控件设置DOCK属性问题
- asp.net 的 textbox控件怎么设置readonly属性
- c#创建窗体,向窗体添加控件,设置控件大小位置等属性,写控件的响应
- delphi忘记了控件属性怎么设置以及控件安装经验
- 在一个窗体中设置另一个窗体的控件属性
- 使用匿名函数在后台线程中设置窗体控件属性
- 使用匿名函数在后台线程中设置窗体控件属性 ()转
- 在使用jquery时间控件的时候无论怎么设置readonly都没有效果,折腾了N久才知道了这个属性,希望可以为同样有过苦恼的童鞋有些帮助
- 以线程安全的方式设置WinForm窗体控件的属性
- winform窗体中 ComboBox 控件的DropDownWidth属性根据显示的文本设置下拉列表的显示宽度
- 设置Form窗体中的控件的属性
- 、首先,我们添加一个主界面窗体,命名为MainForm,该窗体IsMdiContainer设置为True,也就是设置为多文档窗体格式。拖拉布局控件"WeifenLuo.WinFormsUI.Docking.DockPanel"到主窗体MainForm中,并
- 批量设置窗体控件上的属性
- 关联事件,向窗体中添加控件,设置控件属性等系列操作
- 批量设置窗体控件上的属性
- Raize控件的GradientColorStyle的MSOFFICE属性怎么设置的
- delphi忘记了控件属性怎么设置以及控件安装经验
- 利用Anchor和Dock属性管理WinForm控件
- 写一个方法进行各种属性的更新,而不要每个界面设置改变都改变一个属性。就是点击应用或确定按钮时调用这个更新属性的方法,遍历所有(控制对象属性的)界面控件的状态(值),进行属性修改和刷新。