关于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 > ; 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的一些入门的基本操作的更多相关文章
- 【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 ...
- struts2第一天——入门和基本操作
一.概述 1.运用场景: 应用于三层架构中web层的框架(显示层的运用),是经典MVC模型的web应用的变体. 2.与struts1的对比: struts2是在struts1基于webwork发展的全 ...
- Hibernate第一天——入门和基本操作
第一个接触的框架就是这个Hibernate框架了,Hibernate本意是 冬眠 ,这里有必要引用CSDN上某位网友某个帖子的评论先引出框架的概念: 框架:一个软件半成品,帮你做了一些基础工作,你就可 ...
- Web APi入门之基本操作(一)
最近学习了下WebApi,WebApi是RESTful风格,根据请求方式决定操作.以博客的形式写出来,加深印象以及方便以后查看和复习. 1.首先我们使用VS创建一个空的WebApi项目 2.新建实体以 ...
- MongoDB入门_shell基本操作
使用shell客户端连接mongoDB数据库 [root@localhost mongodb_simple]# ./bin/mongo /admin mongoDB的简单基本操作 1. mongoDB ...
- github入门之基本操作--4
1.初始化仓库 如果成功执行git init 命令,该目录下会生成一个.git的目录 2.查看仓库状态 *注: 实际工作中,git status使用次数非常多,一定要记住.因为当工作树和仓库被操作的过 ...
- linux学习5 Linux开篇入门和基本操作
一.完整的操作系统 1.GNU系统:表示GNU is Not Unix.表示不做商业化.制定了GPL(General Public License)即任何软件程序只要遵循GPL协议就是自由软件.还制定 ...
- Xmind快速入门(基本操作够用了)
先选择结构--再选择风格 快捷键: 1.tab (产生子主题)2.enter (在下方产生并列主题) shift+enter (在上方产生并列主题)3.Alt+Enter (给某个主题添加标注)4.按 ...
- [No00004F]史上最全Vim快捷键键位图(入门到进阶)
史上最全Vim快捷键键位重磅来袭!!学习Linux的朋友看过来啦,你是不是觉得Linux编辑器Vim操作复杂,步骤繁琐呢?Linux工程师是不是想大幅度提升自己的工作效率呢? 经典版 下 ...
随机推荐
- plsql软件使用手册
记录登陆密码及用户名
- 「java.util.concurrent并发包」之 CyclicBarrier
一 描述 CyclicBarrier初始化时规定一个数目,然后计算调用了CyclicBarrier.await()进入等待的线程数.当线程数达到了这个数目时,所有进入等待状态的线程被唤醒并继续.Cyc ...
- 使用Minikube运行一个本地单节点Kubernetes集群
使用Minikube是运行Kubernetes集群最简单.最快捷的途径,Minikube是一个构建单节点集群的工具,对于测试Kubernetes和本地开发应用都非常有用. ⒈安装Minikube Mi ...
- linux内核钩子--khook
简介 本文介绍github上的一个项目khook,一个可以在内核中增加钩子函数的框架,支持x86.项目地址在这里:https://github.com/milabs/khook 本文先简单介绍钩子函数 ...
- MVC4中去掉浏览器生成的无关代码方法
通过增加Web.Config配置,如: <add key="vs:EnableBrowserLink" value="false"/>可以去掉MVC ...
- Python算法题(一)——青蛙跳台阶
题目一(青蛙跳台阶): 一只青蛙一次可以跳上1级台阶,也可以跳上2级.求该青蛙跳上一个n级的台阶总共有多少种跳法. 分析: 假设只有一级台阶,则总共只有一种跳法: 假设有两级台阶,则总共有两种跳法: ...
- luogu P4428 [BJOI2018]二进制
luogu 先考虑怎样的二进制串才会被3整除.可以发现如果二进制位第\(0,2,4...2n\)位如果为\(1\),那么在模3意义下为1,如果二进制位第\(1,3,5...2n+1\)位如果为\(1\ ...
- Centos7:Redis3.0集群搭建
Redis集群中至少应该有三个节点.要保证集群的高可用,需要每个节点有一个备份机.Redis集群至少需要6台服务器. 搭建伪分布式.可以使用一台虚拟机运行6个redis实例. 修改redis的端口号7 ...
- babel详解
https://segmentfault.com/a/1190000019718925 https://babeljs.io/blog/2019/03/19/7.4.0#core-js-3-7646- ...
- require.context() 用于获取一个特定上下文的,webpack的一个api
参考链接: 1.https://www.jianshu.com/p/c894ea00dfec 2.https://www.jianshu.com/p/c894ea00dfec require.cont ...