关于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 > ; 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# Dockpanel的一些入门的基本操作的更多相关文章

  1. 【mybatis】1、入门CURD基本操作(环境搭建)

    #1.基本环境 环境 版本 jdk 1.7.0_10 ide eclipse-jee-luna-SR2-win32-x86_64 maven 3.3.3 mybatis 3.2.7 mysql 5.1 ...

  2. struts2第一天——入门和基本操作

    一.概述 1.运用场景: 应用于三层架构中web层的框架(显示层的运用),是经典MVC模型的web应用的变体. 2.与struts1的对比: struts2是在struts1基于webwork发展的全 ...

  3. Hibernate第一天——入门和基本操作

    第一个接触的框架就是这个Hibernate框架了,Hibernate本意是 冬眠 ,这里有必要引用CSDN上某位网友某个帖子的评论先引出框架的概念: 框架:一个软件半成品,帮你做了一些基础工作,你就可 ...

  4. Web APi入门之基本操作(一)

    最近学习了下WebApi,WebApi是RESTful风格,根据请求方式决定操作.以博客的形式写出来,加深印象以及方便以后查看和复习. 1.首先我们使用VS创建一个空的WebApi项目 2.新建实体以 ...

  5. MongoDB入门_shell基本操作

    使用shell客户端连接mongoDB数据库 [root@localhost mongodb_simple]# ./bin/mongo /admin mongoDB的简单基本操作 1. mongoDB ...

  6. github入门之基本操作--4

    1.初始化仓库 如果成功执行git init 命令,该目录下会生成一个.git的目录 2.查看仓库状态 *注: 实际工作中,git status使用次数非常多,一定要记住.因为当工作树和仓库被操作的过 ...

  7. linux学习5 Linux开篇入门和基本操作

    一.完整的操作系统 1.GNU系统:表示GNU is Not Unix.表示不做商业化.制定了GPL(General Public License)即任何软件程序只要遵循GPL协议就是自由软件.还制定 ...

  8. Xmind快速入门(基本操作够用了)

    先选择结构--再选择风格 快捷键: 1.tab (产生子主题)2.enter (在下方产生并列主题) shift+enter (在上方产生并列主题)3.Alt+Enter (给某个主题添加标注)4.按 ...

  9. [No00004F]史上最全Vim快捷键键位图(入门到进阶)

    史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版        下 ...

随机推荐

  1. 基于hanlp的es分词插件

    摘要:elasticsearch是使用比较广泛的分布式搜索引擎,es提供了一个的单字分词工具,还有一个分词插件ik使用比较广泛,hanlp是一个自然语言处理包,能更好的根据上下文的语义,人名,地名,组 ...

  2. Oracle-DQL 2- 限定和排序

    1.where子句--查询30号部门员工的姓名,职位和工资SELECT ename,job,sal,deptno FROM empWHERE deptno = 30; --查询职位是manager的员 ...

  3. 树莓派驱动开发 helloworld

    编写Makefile ifneq ($(KERNELRELEASE),) obj-m := MiniX.o else KDIR := /home/hi/pi/kernel/linux/ all: ma ...

  4. 3.Shell的基本功能

    3.Shell的基本功能Bash是Bourne-Again Shell的缩写.Bourne Shell的内部命令在Bash中同样适用.3.1 Shell语法3.1.1 Shell操作shell读取和执 ...

  5. tracert命令详解_tracert结果详解_tracert命令使用详解

    17:06:40 正在等待客服售后工程师令狐冲接入,您可以先简单描述所要咨询的问题,如果长时间没有响应,您也可以 重新选择客服 . 17:06:42 您好,客服售后工程师令狐冲为您服务.售后工程师令狐 ...

  6. C#求1-100的质数,100-1000的水仙花数,1-100所有的平方和平方平方根

    //你们的鼓励是我最大的动力 大家可以多留言评论  在接下来很长一段时间我会从初级到高级每天更新 大家有想学习的内容也可以留言哦 //现在是我做C#老师的第28天,希望和大家一起努力 加油 using ...

  7. mui APP 微信登录授权

    一.在微信平台上申请appid.appsecret. 二.app --> manifest.json-->SDK配置(填写申请好的appid和appsecret) 三.在登录页,点击微信登 ...

  8. vue中watch深度监听

    监听基本类型的都是浅度监听 watch的深度监听,监听复杂类型都是深度监听(funciton ,arrat ,object) // 监听对象 data(){ return { a:{ b:, c: } ...

  9. Redis-Set常用命令

    Redis-Set常用命令 Set与List的区别在于,Set保存的队列数据是不重复的,且无序 sadd key value- 在指定key对应的集合中添加 value集合,如果key不存在,即新创建 ...

  10. 【玩转SpringBoot】通过事件机制参与SpringBoot应用的启动过程

    生命周期和事件监听 一个应用的启动过程和关闭过程是归属到“生命周期”这个概念的范畴. 典型的设计是在启动和关闭过程中会触发一系列的“事件”,我们只要监听这些事件,就能参与到这个过程中来. 要想监听事件 ...