C# Dockpanel入門基礎(chǔ)必看篇
一、引用:
1.建立一個(gè)WinForm工程,默認(rèn)生成了一個(gè)WinForm窗體Form1(此處默認(rèn)為主窗體)。
2.引用—>添加引用—>瀏覽—>weiFenLuo.winFormsUI.Docking.dll。
3.設(shè)置Form1窗體屬性IsMdiContainer:True。
4.工具箱—>右鍵—>選擇項(xiàng)—>.net組件—>瀏覽—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出現(xiàn)dockPanel。
5.將dockPanel拖到窗體主窗體上,設(shè)置Dock屬性,一般默認(rèn)設(shè)置為:Fill。
二、設(shè)置停靠窗體:
1.新建一個(gè)WinForm窗體。
2.在代碼中修改窗體繼承于DockContent。如下:
using WeifenLuo.WinFormsUI.Docking;
public partial class Form2 : DockContent
3.在主窗體中顯示??看绑w。
在要顯示??看绑w的事件中寫入以下代碼:
Private void 事件名(){ Form2 form2 = new Form2(); form2.Show(??康母溉萜?,DockState.要停靠的方位); }
三、設(shè)置窗體浮動(dòng):
1、設(shè)置需要浮動(dòng)的窗體的Dock中的DockAreas屬性。
四、關(guān)閉當(dāng)前容器中的所有窗體
1、獲取到當(dāng)容器中的所有子窗體的個(gè)數(shù):
dockPanel1.Contents.Count;
2、獲取容器中的所有對(duì)象的數(shù)組,并將其轉(zhuǎn)換為
IDockContent對(duì)象:
IDockContent content =(IDockContent)dockPanel1.Contents[index];
3、循環(huán)關(guān)閉:
for (int index = dockPanel1.Contents.Count;index > 0; index--) { if(dockPanel1.Contents[index] isIDockContent) { IDockContent content =(IDockContent)dockPanel1.Contents[index]; content.DockHandler.Close();}}
五、關(guān)閉除當(dāng)前正在活動(dòng)的子窗體之外得到所有子窗體:
1、獲取當(dāng)前正在活動(dòng)的子窗體對(duì)象:
this.ActiveMdiChild;
2、遍歷容器中的子窗體,并判斷是否為當(dāng)前正在活動(dòng)的窗體,不是則關(guān)閉:
if (this.ActiveMdiChild != null) { //判斷是否有子窗體 foreach (Form f in this.MdiChildren) {//獲取子窗體 if (f != this.ActiveMdiChild) { f.Close(); }//判斷是否為當(dāng)前選定窗口 } }
六、更改窗體風(fēng)格:
1、下載要設(shè)置風(fēng)格的資源庫或相關(guān)控件。例如: vS2005Theme、vS2003Theme、vS2012LightTheme;
然后將要更改風(fēng)格的DockPanel控件的Theme屬性設(shè)置為相應(yīng)的控件名。例:
dockPanel1.Theme = vS2003Theme2;
如果要更改主窗體的風(fēng)格,則要下載vS2012ToolStripExtender控件。
vS2012ToolStripExtender1.SetEnableVS2012Style(要更改的控件, true);
七、更改窗體的樣式:
1.獲取并記錄當(dāng)前樣式:
DocumentStyle oldStyle = dockPanel1.DocumentStyle;//記錄舊的樣式
2.定義新樣式對(duì)象并為其賦值要更改的樣式:
DocumentStyle newStyle=要更改的樣式(DocumentStyle.樣式);
3、設(shè)置新的樣式:
要更改樣式的窗體.
DocumentStyle=newStyle;
八、記錄當(dāng)前窗體布局:
1.定義一個(gè)正在窗體關(guān)閉事件:
private void MainForm_FormClosing(object sender FormClosingEventArgse){ .......... }
2.在事件在寫入記錄當(dāng)前窗體布局的代碼,如下:
configFile =Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),"DockPanel.config");
dockPanel1.SaveAsXml(configFile);
3、如果下載打開窗體需要加載上一次的退出時(shí)的布局,則在窗體加載事件中寫入以下代碼:
configFile =Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),"DockPanel.config"); if(File.Exists(configFile)) { dockPanel1.LoadFromXml(configFile, ddc); }
補(bǔ)充知識(shí):winform DockPanel的用法
DockPanel中提供了幾個(gè)可用的類,重要的有兩個(gè):DockPanel和DockContent。
DockPanel是從panel繼承出來的,用于提供可浮動(dòng)的dock的子窗口進(jìn)行浮動(dòng)和dock的場(chǎng)所, DockContent是從form類中繼承出來的,用于提供可浮動(dòng)的窗口基類.就是說: DockContent對(duì)象可以在DockPanel對(duì)象中任意貼邊,浮動(dòng), TAB化等。
WeifenLuo.WinFormsUI.Docking.dll的使用方法:
1.建立一個(gè)WinForm工程,默認(rèn)生成了一個(gè)WinForm窗體Form1;
2.引用—>添加引用—>瀏覽—>WeifenLuo.WinFormsUI.Docking.dll,最好是先把WeifenLuo.WinFormsUI.Docking.dll拷貝到項(xiàng)目目錄下面,方便以后創(chuàng)建安裝文件;
3.設(shè)置窗體(Form1)屬性IsMdiContainer為True;
4.工具箱—>右鍵—>選擇項(xiàng)—>.net組件—>瀏覽—>WeifenLuo.WinFormsUI.Docking.dll—>在工具箱出現(xiàn)dockPanel;
5.將DockPanel拖到窗體Form1上,設(shè)置Dock屬性,我設(shè)置的是:Fill;
6.新建一個(gè)WinForm窗體,如:數(shù)據(jù)集信息左側(cè);
7.設(shè)置JReductBtree壓縮樹類繼承DockContent,public partial class 數(shù)據(jù)集信息左側(cè) : DockContent
8.在JReductBtree壓縮樹類中添加using WeifenLuo.WinFormsUI.Docking;
9.在主窗體Form1中顯示停靠窗體,代碼如下:
public void MainWindow_Load(object sender, EventArgs e) { 數(shù)據(jù)集信息左側(cè) tingkaoLeftWindow = new 數(shù)據(jù)集信息左側(cè)(); tingkaoLeftWindow.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft); 數(shù)據(jù)集內(nèi)容 shujujiLoad = new 數(shù)據(jù)集內(nèi)容(); shujujiLoad.Show(this.dockPanel1); }
說明:
tingkaoLeftWindow.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft);
表示打開主窗體的時(shí)候 tingkaoLeftWindow 在主窗體的左邊顯示;
shujujiLoad.Show(this.dockPanel1);
表示 shujujiLoad 作為標(biāo)簽頁顯示。
運(yùn)行后的樣式如下圖:
以上這篇C# Dockpanel入門基礎(chǔ)必看篇就是小編分享給大家的全部內(nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
Windows系統(tǒng)中C#調(diào)用WinRAR來壓縮和解壓縮文件的方法
這篇文章主要介紹了Windows系統(tǒng)中C#調(diào)用WinRAR來壓縮和解壓縮文件的方法,個(gè)人感覺在Windows中WinRAR相對(duì)7-zip更加穩(wěn)定一些,需要的朋友可以參考下2016-04-04Unity 實(shí)現(xiàn)框選游戲戰(zhàn)斗單位的思路詳解
這篇文章主要介紹了Unity 如何實(shí)現(xiàn)框選游戲戰(zhàn)斗單位,本文簡單介紹如何實(shí)現(xiàn)即時(shí)戰(zhàn)略游戲中框選戰(zhàn)斗單位的功能,需要的朋友可以參考下2022-12-12WPF利用LiveCharts實(shí)現(xiàn)動(dòng)態(tài)曲線圖繪制
LiveCharts是一個(gè)比較漂亮的WPF圖表控件,在數(shù)據(jù)發(fā)生變化后,還可以設(shè)置相對(duì)于的動(dòng)畫效果,本文就來利用LiveCharts繪制簡單的動(dòng)態(tài)曲線圖吧2023-10-10如何利用Jenkins + TFS為.Net Core實(shí)現(xiàn)持續(xù)集成/部署詳解
這篇文章主要給大家介紹了關(guān)于如何利用Jenkins + TFS為.Net Core實(shí)現(xiàn)持續(xù)集成/部署的相關(guān)資料,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2018-05-05基于C#的winform實(shí)現(xiàn)數(shù)字華容道游戲
這篇文章主要為大家詳細(xì)介紹了基于C#的winform實(shí)現(xiàn)數(shù)字華容道游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2022-02-02