溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Dockpanel怎么在C# 中使用

發(fā)布時間:2020-12-07 14:33:53 來源:億速云 閱讀:265 作者:Leah 欄目:開發(fā)技術

Dockpanel怎么在C# 中使用?很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。

一、引用:

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

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

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

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

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

二、設置??看绑w:

1.新建一個WinForm窗體。

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

using WeifenLuo.WinFormsUI.Docking;

public partial class Form2 : DockContent

3.在主窗體中顯示??看绑w。

在要顯示??看绑w的事件中寫入以下代碼:

Private void 事件名(){
  Form2 form2 = new Form2();
form2.Show(停靠的父容器,DockState.要停靠的方位);
}

三、設置窗體浮動:

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

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

1、獲取到當容器中的所有子窗體的個數(shù):

dockPanel1.Contents.Count;

2、獲取容器中的所有對象的數(shù)組,并將其轉換為

IDockContent對象:

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

3、循環(huán)關閉:

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);
   }

補充知識:C#使用as關鍵字將對象轉換為指定類型

在C#的編程開發(fā)過程中,很多時候涉及到數(shù)據(jù)類型的轉換,可使用強制轉換的方式,不過強制轉換數(shù)據(jù)類型有時候會拋出程序異常錯誤,可以使用as關鍵字來進行類型的轉換,如果轉換成功將返回轉換后的對象,如果轉換不成功則不會拋出異常而是返回NULL。

如將A類型的對象modelA轉換為B類型的對象,可使用下列語句操作:

var entityB=modelA as B;

如果entityB不為空,則轉換成功,如果entityB的值為空,則轉換不成功。

看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業(yè)資訊頻道,感謝您對億速云的支持。

向AI問一下細節(jié)

免責聲明:本站發(fā)布的內容(圖片、視頻和文字)以原創(chuàng)、轉載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權內容。

AI