關於C# Dockpanel的一些入門的基本操作


關於C# Dockpanel的一些入門的基本操作

原文鏈接:https://blog.csdn.net/Lc1996Jm/article/details/51881064

一、引用:

1.建立一個WinForm工程,默認生成了一個WinForm窗體Form1(此處默認為主窗體)。

 

2.引用—>添加引用—>瀏覽—>weiFenLuo.winFormsUI.Docking.dll。

 

3.設置Form1窗體屬性IsMdiContainer:True。

 

4.工具箱—>右鍵—>選擇項—>.net組件—>瀏覽—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出現dockPanel。

   

5.將dockPanel拖到窗體主窗體上,設置Dock屬性,一般默認設置為:Fill。

 

二、設置停靠窗體:

1.新建一個WinForm窗體。

 

2.在代碼中修改窗體繼承於DockContent。如下:

using WeifenLuo.WinFormsUI.Docking;

public partial class Form2 : DockContent

 

 

3.在主窗體中顯示停靠窗體。

在要顯示停靠窗體的事件中寫入以下代碼:

Private void 事件名(){

  Form2 form2 = new Form2();

form2.Show(停靠的父容器,DockState.要停靠的方位);

}

 

三、設置窗體浮動:

1、設置需要浮動的窗體的Dock中的DockAreas屬性。

四、關閉當前容器中的所有窗體

1、獲取到當容器中的所有子窗體的個數:                                              dockPanel1.Contents.Count;

2、獲取容器中的所有對象的數組,並將其轉換為

IDockContent對象:

IDockContent content =(IDockContent)dockPanel1.Contents[index];

 

3、循環關閉:

for (int index = dockPanel1.Contents.Count;index > 0; index--)

{

  if(dockPanel1.Contents[index] isIDockContent)

       {

        IDockContent content =(IDockContent)dockPanel1.Contents[index];

     content.DockHandler.Close();}}

 

五、關閉除當前正在活動的子窗體之外得到所有子窗體:

1、獲取當前正在活動的子窗體對象:

this.ActiveMdiChild;

 

2、遍歷容器中的子窗體,並判斷是否為當前正在活動的窗體,不是則關閉:

if (this.ActiveMdiChild != null)

            { //判斷是否有子窗體

               foreach (Form f in this.MdiChildren)

               {//獲取子窗體

                       if (f != this.ActiveMdiChild) { f.Close(); }//判斷是否為當前選定窗口

                                   }

            }

 

六、更改窗體風格:

1、下載要設置風格的資源庫或相關控件。例如: vS2005Theme、vS2003Theme、vS2012LightTheme;

然后將要更改風格的DockPanel控件的Theme屬性設置為相應的控件名。例:

dockPanel1.Theme = vS2003Theme2;

如果要更改主窗體的風格,則要下載vS2012ToolStripExtender控件。

vS2012ToolStripExtender1.SetEnableVS2012Style(要更改的控件, true);

 

七、更改窗體的樣式:

1.獲取並記錄當前樣式:

DocumentStyle oldStyle = dockPanel1.DocumentStyle;//記錄舊的樣式

2.定義新樣式對象並為其賦值要更改的樣式:

DocumentStyle newStyle=要更改的樣式(DocumentStyle.樣式);

3、設置新的樣式:

要更改樣式的窗體. DocumentStyle=newStyle;

八、記錄當前窗體布局:

1.定義一個正在窗體關閉事件:

private void MainForm_FormClosing(object sender FormClosingEventArgse){

..........

}

2.在事件在寫入記錄當前窗體布局的代碼,如下:

configFile =Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),"DockPanel.config");

dockPanel1.SaveAsXml(configFile);

3、如果下載打開窗體需要加載上一次的退出時的布局,則在窗體加載事件中寫入以下代碼:

configFile =Path.Combine(Path.GetDirectoryName(Application.ExecutablePath),"DockPanel.config");

            if(File.Exists(configFile))

            {

               dockPanel1.LoadFromXml(configFile, ddc);

            }


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM