C# WinForm控件之Dock先后顺序调整

今天在界面里添加了一个按钮,但是在DOCK时,总是自动掉到最底部。

查找了下,原来DOCK是有顺序的。

参考资料:C# WinForm控件之Dock先后顺序调整

以下内容为转载!感谢资料分分享者!

最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以随着窗口大小的变化而变化。
但问题是,.net winform的dock方式是根据先添加的控件顺序进行优先级Dock排列的,假设我想目前有三个控件A、B、C分别以 Top、Bottom以及Fill方式填充窗口即窗口看起来应该是这样的:

---------------------

A

---------------------

C

---------------------

B

----------------------

 

问题来了,现在我想添加D控件在A及C中间怎么办?尝试了不少办法都不行,一般都会覆盖掉C控件的,也就是最后添加的控件。

在网上查找,很多人都提出一种无奈的解决方案,那就是重新来过,将控件再次添加到窗口form中,虽然可以解决Dock布局带来的困扰,但带来的是工作量的倍增同时很难调整到跟之前的布局一模一样 。

 

想来这都不是解决的办法,添加添加,我一直想,对了先添加的控件具有Dock的优先排序权,应该可以从Designer文件中着手啊。

 

 找到以下代码:

this.Controls.Add( this.D); 

this.Controls.Add(this.C);
this.Controls.Add(this.B);
this.Controls.Add(this.A);

 

 将代码的顺序调整为:

 

this.Controls.Add( this.C); 
this.Controls.Add( this.D);
this.Controls.Add( this.B);
this.Controls.Add( this.A);


问题即解决了。

 由此可见,在Desinger文件中是以后添加的控件为优先权高来Dock排序,即A控件的排序优先权最高(下面的控件优先高)。


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值