深入分析C#中WinForm控制項之Dock順序調整的詳解

來源:互聯網
上載者:User

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

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

問題來了,現在我想添加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控制項的排序優先權最高。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.