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