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

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM