winform中Dock的布局规则

放一个Panel,当Dock为Left的时,就表示子控件停靠在父控件的左边区域,并把左区域填充满:

上图中的Panel总是会停靠在Form的左边区域,不管如何调整Form的高度,它总是能把左边区域填满。Dock麻烦的地方在于多个控件碰到一起时,比如有两个Panel都设置为Left该怎么办?我们会发现向父控件的Controls集合中添加子控件,越晚添加具有更高的“优先级”。这里的优先级指的是,子控件“优先级”越高,越靠近父控件边缘,其他子控件就得避让:

this.Controls.Add(this.panel1); this.Controls.Add(this.panel2);

 

Panel2后添加进去,所以它具有更高的优先级,更靠近Form的边缘。这个规则不仅仅对于Dock都设为Left的有效,对Dock属性不同,但是碰到一起的子控件也适用:

   1: this.panel1.Dock = DockStyle.Left;
   2: this.panel2.Dock = DockStyle.Left;
   3: this.panel3.Dock = DockStyle.Top;
   4:  
   5: this.Controls.Add(this.panel1);
   6: this.Controls.Add(this.panel2);
   7: this.Controls.Add(this.panel3);

panel3的Dock设置为Top,最后添加到Controls集合中,所以具有最高的优先级,其他两个panel都得避让:

将Panel3调整成第二个添加进去呢?却是这番景象:

转载于:https://www.cnblogs.com/Daywei/archive/2012/12/17/2822067.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值