深入分析C#中WinForm控件之Dock順序調(diào)整的詳解
更新時間:2013年05月20日 09:34:50 作者:
本篇文章是對C#中WinForm控件之Dock順序調(diào)整進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起來也是比較方便,如果最大化,窗口大小調(diào)整等,都可以隨著窗口大小的變化而變化。
但問題是,.net winform的dock方式是根據(jù)先添加的控件順序進(jìn)行優(yōu)先級Dock排列的,假設(shè)我想目前有三個控件A、B、C分別以 Top、Bottom以及Fill方式填充窗口即窗口看起來應(yīng)該是這樣的:
---------------------
A
---------------------
C
---------------------
----------------------
問題來了,現(xiàn)在我想添加D控件在A及C中間怎么辦?嘗試了不少辦法都不行,一般都會覆蓋掉C控件的,也就是最后添加的控件。
在網(wǎng)上查找,很多人都提出一種無奈的解決方案,那就是重新來過,將控件再次添加到窗口form中,雖然可以解決Dock布局帶來的困擾,但帶來的是工作量的倍增同時很難調(diào)整到跟之前的布局一模一樣 。
想來這都不是解決的辦法,添加添加,我一直想,對了先添加的控件具有Dock的優(yōu)先排序權(quán),應(yīng)該可以從Designer文件中著手啊。
找到以下代碼:
this.Controls.Add(this.D);
this.Controls.Add(this.C);
this.Controls.Add(this.B);
this.Controls.Add(this.A);
將代碼的順序調(diào)整為:
this.Controls.Add(this.C);
this.Controls.Add(this.D);
this.Controls.Add(this.B);
this.Controls.Add(this.A);
問題即解決了。
由此可見,在Desinger文件中是以后添加的控件為優(yōu)先權(quán)高來Dock排序,即A控件的排序優(yōu)先權(quán)最高。
但問題是,.net winform的dock方式是根據(jù)先添加的控件順序進(jìn)行優(yōu)先級Dock排列的,假設(shè)我想目前有三個控件A、B、C分別以 Top、Bottom以及Fill方式填充窗口即窗口看起來應(yīng)該是這樣的:
---------------------
A
---------------------
C
---------------------
----------------------
問題來了,現(xiàn)在我想添加D控件在A及C中間怎么辦?嘗試了不少辦法都不行,一般都會覆蓋掉C控件的,也就是最后添加的控件。
在網(wǎng)上查找,很多人都提出一種無奈的解決方案,那就是重新來過,將控件再次添加到窗口form中,雖然可以解決Dock布局帶來的困擾,但帶來的是工作量的倍增同時很難調(diào)整到跟之前的布局一模一樣 。
想來這都不是解決的辦法,添加添加,我一直想,對了先添加的控件具有Dock的優(yōu)先排序權(quán),應(yīng)該可以從Designer文件中著手啊。
找到以下代碼:
復(fù)制代碼 代碼如下:
this.Controls.Add(this.D);
this.Controls.Add(this.C);
this.Controls.Add(this.B);
this.Controls.Add(this.A);
將代碼的順序調(diào)整為:
復(fù)制代碼 代碼如下:
this.Controls.Add(this.C);
this.Controls.Add(this.D);
this.Controls.Add(this.B);
this.Controls.Add(this.A);
問題即解決了。
由此可見,在Desinger文件中是以后添加的控件為優(yōu)先權(quán)高來Dock排序,即A控件的排序優(yōu)先權(quán)最高。
您可能感興趣的文章:
- .Net WInform開發(fā)筆記(三)談?wù)勛灾瓶丶?自定義控件)
- c#中多線程訪問winform控件的若干問題小結(jié)
- WinForm子窗體訪問父窗體控件的實現(xiàn)方法
- C#的winform控件命名規(guī)范
- WinForm自定義函數(shù)FindControl實現(xiàn)按名稱查找控件
- 簡介Winform中創(chuàng)建用戶控件
- WinForm實現(xiàn)移除控件某個事件的方法
- C#中讓控件全屏顯示的實現(xiàn)代碼(WinForm)
- C# WinForm程序處理后臺繁忙導(dǎo)致前臺控件假死現(xiàn)象解決方法
- 使用重繪項美化WinForm的控件
相關(guān)文章
WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享
最近在網(wǎng)上看到了新版的360安全衛(wèi)士,感覺界面還不錯,于是用WPF制作了一個,時間有限,一些具體的控件沒有制作,用圖片代替了。感興趣的朋友一起跟著小編學(xué)習(xí)WPF實現(xiàn)類似360安全衛(wèi)士界面的程序源碼分享2015-09-09C# Entity Framework中的IQueryable和IQueryProvider詳解
這篇文章主要介紹了C# Entity Framework中的IQueryable和IQueryProvider詳解,本文使用實例分析這兩個接口的內(nèi)部實現(xiàn),需要的朋友可以參考下2015-01-01C# websocket及時通信協(xié)議的實現(xiàn)方法示例
說到websocket大家一定不會陌生,WebSocket是HTML5一種新的協(xié)議。下面這篇文章主要給大家介紹了關(guān)于C# websocket及時通信協(xié)議的實現(xiàn)方法,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來一起看看吧。2017-11-11