C# WinForm控件之Dock前後順序調整

  

C# WinForm控件之Dock順序調整

最近被.net winform中的控件佈局搞困惑了,因爲控件都是使用Dock方式的,操做起來也是比較方便,若是最大化,窗口大小調整等,均可以隨着窗口大小的變化而變化。
但問題是,.net winform的dock方式是根據先添加的控件順序進行優先級Dock排列的,假設我想目前有三個控件A、B、C分別以 Top、Bottom以及Fill方式填充窗口即窗口看起來應該是這樣的:

---------------------佈局

Athis

---------------------spa

C.net

---------------------code

Borm

----------------------blog

 

問題來了,如今我想添加D控件在A及C中間怎麼辦?嘗試了很多辦法都不行,通常都會覆蓋掉C控件的,也就是最後添加的控件。排序

在網上查找,不少人都提出一種無奈的解決方案,那就是從新來過,將控件再次添加到窗口form中,雖然能夠解決Dock佈局帶來的困擾,但帶來的是工做量的倍增同時很難調整到跟以前的佈局如出一轍 。token

 

想來這都不是解決的辦法,添加添加,我一直想,對了先添加的控件具備Dock的優先排序權,應該能夠從Designer文件中着手啊。get

 

 找到如下代碼:

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控件的排序優先權最高(下面的控件優先高)。

相關文章
相關標籤/搜索