C# Dockpanel入门基础必看篇

 更新时间:2020年12月08日 11:35:22   作者:Lc1996Jm  
这篇文章主要介绍了C# Dockpanel入门基础必看篇,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

一、引用:

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

补充知识:winform DockPanel的用法

DockPanel中提供了几个可用的类,重要的有两个:DockPanel和DockContent。

DockPanel是从panel继承出来的,用于提供可浮动的dock的子窗口进行浮动和dock的场所, DockContent是从form类中继承出来的,用于提供可浮动的窗口基类.就是说: DockContent对象可以在DockPanel对象中任意贴边,浮动, TAB化等。

WeifenLuo.WinFormsUI.Docking.dll的使用方法:

1.建立一个WinForm工程,默认生成了一个WinForm窗体Form1;

2.引用—>添加引用—>浏览—>WeifenLuo.WinFormsUI.Docking.dll,最好是先把WeifenLuo.WinFormsUI.Docking.dll拷贝到项目目录下面,方便以后创建安装文件;

3.设置窗体(Form1)属性IsMdiContainer为True;

4.工具箱—>右键—>选择项—>.net组件—>浏览—>WeifenLuo.WinFormsUI.Docking.dll—>在工具箱出现dockPanel;

5.将DockPanel拖到窗体Form1上,设置Dock属性,我设置的是:Fill;

6.新建一个WinForm窗体,如:数据集信息左侧;

7.设置JReductBtree压缩树类继承DockContent,public partial class 数据集信息左侧 : DockContent

8.在JReductBtree压缩树类中添加using WeifenLuo.WinFormsUI.Docking;

9.在主窗体Form1中显示停靠窗体,代码如下:

public void MainWindow_Load(object sender, EventArgs e)
    {
 
      数据集信息左侧 tingkaoLeftWindow = new 数据集信息左侧();
      tingkaoLeftWindow.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft);
 
      数据集内容 shujujiLoad = new 数据集内容();
      shujujiLoad.Show(this.dockPanel1);
    }

说明:

tingkaoLeftWindow.Show(this.dockPanel1, WeifenLuo.WinFormsUI.Docking.DockState.DockLeft);

表示打开主窗体的时候 tingkaoLeftWindow 在主窗体的左边显示;

shujujiLoad.Show(this.dockPanel1);

表示 shujujiLoad 作为标签页显示。

运行后的样式如下图:

以上这篇C# Dockpanel入门基础必看篇就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 深入C#中get与set的详解

    深入C#中get与set的详解

    本篇文章是对C#中的get与set进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • Windows系统中C#调用WinRAR来压缩和解压缩文件的方法

    Windows系统中C#调用WinRAR来压缩和解压缩文件的方法

    这篇文章主要介绍了Windows系统中C#调用WinRAR来压缩和解压缩文件的方法,个人感觉在Windows中WinRAR相对7-zip更加稳定一些,需要的朋友可以参考下
    2016-04-04
  • Unity 实现框选游戏战斗单位的思路详解

    Unity 实现框选游戏战斗单位的思路详解

    这篇文章主要介绍了Unity 如何实现框选游戏战斗单位,本文简单介绍如何实现即时战略游戏中框选战斗单位的功能,需要的朋友可以参考下
    2022-12-12
  • WPF利用LiveCharts实现动态曲线图绘制

    WPF利用LiveCharts实现动态曲线图绘制

    LiveCharts是一个比较漂亮的WPF图表控件,在数据发生变化后,还可以设置相对于的动画效果,本文就来利用LiveCharts绘制简单的动态曲线图吧
    2023-10-10
  • C#中Dapper的使用教程

    C#中Dapper的使用教程

    Dapper是一款轻量级ORM工具(Github),Dapper语法十分简单。并且无须迁就数据库的设计,今天通过本文给大家介绍C# Dapper的使用,感兴趣的朋友一起看看吧
    2021-07-07
  • 如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解

    如何利用Jenkins + TFS为.Net Core实现持续集成/部署详解

    这篇文章主要给大家介绍了关于如何利用Jenkins + TFS为.Net Core实现持续集成/部署的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2018-05-05
  • 详解C#中的out和ref

    详解C#中的out和ref

    本文主要介绍了out和ref的相关知识。具有一定的参考价值,下面跟着小编一起来看下吧
    2017-01-01
  • C#调用JS的几种方法

    C#调用JS的几种方法

    这篇文章主要介绍了C#调用JS的几种方法,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-12-12
  • 基于C#的winform实现数字华容道游戏

    基于C#的winform实现数字华容道游戏

    这篇文章主要为大家详细介绍了基于C#的winform实现数字华容道游戏,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#中async和await的深入分析

    C#中async和await的深入分析

    Async/Await是C# 5引入的关键字,用以提高用户界面响应能力和对Web资源的访问能力,同时它使异步代码的编写变得更加容易,下面这篇文章主要给大家介绍了关于C#中async和await的相关资料,需要的朋友可以参考下
    2022-11-11

最新评论