深入分析C#中WinForm控件之Dock順序調(diào)整的詳解
更新時(shí)間:2013年05月20日 09:34:50 作者:
本篇文章是對(duì)C#中WinForm控件之Dock順序調(diào)整進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起來也是比較方便,如果最大化,窗口大小調(diào)整等,都可以隨著窗口大小的變化而變化。
但問題是,.net winform的dock方式是根據(jù)先添加的控件順序進(jìn)行優(yōu)先級(jí)Dock排列的,假設(shè)我想目前有三個(gè)控件A、B、C分別以 Top、Bottom以及Fill方式填充窗口即窗口看起來應(yīng)該是這樣的:
---------------------
A
---------------------
C
---------------------
----------------------
問題來了,現(xiàn)在我想添加D控件在A及C中間怎么辦?嘗試了不少辦法都不行,一般都會(huì)覆蓋掉C控件的,也就是最后添加的控件。
在網(wǎng)上查找,很多人都提出一種無奈的解決方案,那就是重新來過,將控件再次添加到窗口form中,雖然可以解決Dock布局帶來的困擾,但帶來的是工作量的倍增同時(shí)很難調(diào)整到跟之前的布局一模一樣 。
想來這都不是解決的辦法,添加添加,我一直想,對(duì)了先添加的控件具有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)先級(jí)Dock排列的,假設(shè)我想目前有三個(gè)控件A、B、C分別以 Top、Bottom以及Fill方式填充窗口即窗口看起來應(yīng)該是這樣的:
---------------------
A
---------------------
C
---------------------
----------------------
問題來了,現(xiàn)在我想添加D控件在A及C中間怎么辦?嘗試了不少辦法都不行,一般都會(huì)覆蓋掉C控件的,也就是最后添加的控件。
在網(wǎng)上查找,很多人都提出一種無奈的解決方案,那就是重新來過,將控件再次添加到窗口form中,雖然可以解決Dock布局帶來的困擾,但帶來的是工作量的倍增同時(shí)很難調(diào)整到跟之前的布局一模一樣 。
想來這都不是解決的辦法,添加添加,我一直想,對(duì)了先添加的控件具有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子窗體訪問父窗體控件的實(shí)現(xiàn)方法
- C#的winform控件命名規(guī)范
- WinForm自定義函數(shù)FindControl實(shí)現(xiàn)按名稱查找控件
- 簡(jiǎn)介Winform中創(chuàng)建用戶控件
- WinForm實(shí)現(xiàn)移除控件某個(gè)事件的方法
- C#中讓控件全屏顯示的實(shí)現(xiàn)代碼(WinForm)
- C# WinForm程序處理后臺(tái)繁忙導(dǎo)致前臺(tái)控件假死現(xiàn)象解決方法
- 使用重繪項(xiàng)美化WinForm的控件
相關(guān)文章
C#實(shí)現(xiàn)抓取和分析網(wǎng)頁類實(shí)例
這篇文章主要介紹了C#實(shí)現(xiàn)抓取和分析網(wǎng)頁類,實(shí)例分析了C#抓取及分析網(wǎng)頁中文本及連接的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-05-05
C#如何實(shí)現(xiàn)dataGridView動(dòng)態(tài)綁定數(shù)據(jù)
這篇文章主要介紹了C#如何實(shí)現(xiàn)dataGridView動(dòng)態(tài)綁定數(shù)據(jù),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04
winform壁紙工具為圖片添加當(dāng)前月的日歷信息
使用用winform做了一個(gè)設(shè)置壁紙小工具,為圖片添加當(dāng)月的日歷并設(shè)為壁紙,可以手動(dòng)/定時(shí)設(shè)置壁紙,最主要的特點(diǎn)是在圖片上生成當(dāng)前月的日歷信息,感興趣的你可以參考下2013-03-03
C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法
這篇文章主要介紹了C#中GridView動(dòng)態(tài)添加列的實(shí)現(xiàn)方法,涉及C#中GridView的相關(guān)使用技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下2015-07-07
C#后臺(tái)調(diào)用前臺(tái)JS函數(shù)方法
今天小編就為大家分享一篇關(guān)于C#后臺(tái)調(diào)用前臺(tái)JS函數(shù)方法,小編覺得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來看看吧2019-01-01

