关于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工程师是不是想大幅度提升自己的工作效率呢? 经典版 下 ...
随机推荐
- 14.Sqoop把数据从HDFS导出到mysql
创建数据文件 ,gopal,manager,,TP ,manisha,preader,,TP ,kalil,php dev,,AC ,prasanth,php dev,,AC ,kranthi,adm ...
- 13.sqoop的安装
上传sqoop压缩包,并解压 给sqoop一个软链接 给sqoop配置环境变量 #sqoop export SQOOP_HOME=/opt/modules/sqoop export PATH=$P ...
- Navicat远程无法创建数据库
Navicat远程无法创建数据库 提示报错信息如下,说明是用户创建的权限不足. Error Code: 1044. Access denied for user 'root'@'%' to datab ...
- 牛客 40F 珂朵莉的约数 (莫队)
珂朵莉给你一个长为n的序列,有m次查询 每次查询给两个数l,r 设s为区间[l,r]内所有数的乘积 求s的约数个数mod 1000000007 直接莫队暴力维护复杂度是$O(8m\sqrt{m})$. ...
- SpringBoot 初入门
SpringBoot 初入门 关于介绍什么之类的就不讲了,主要做一下学习记录. 1. 启动方式 IDEA 启动 命令行启动: mvn spring-boot:run 部署到服务器启动: 先进行打包, ...
- Struts的相关基础
为什么要用struts? 1.该框架基予mvc的开发设计模式上的,所以拥有mvc的全部优点,他在M.V.C上都有涉及,但它主要是提供一个好的控制器和一套定制的标签库上,有mvc的一系列优点:层次分明, ...
- js之数据类型(对象类型——构造器对象——数组2)
一.数组空位与undefined 数组空位:数组的某一个位置没有任何值 产生空位的原因:数组中两个逗号之间不放任何值:用new Array()的方法,参数里是个数字:通过一个不存在的下标去增加数组:增 ...
- 这不是javascript:什么?
javascript协议.<a href=“javascript:void(0):”>xxx</a>基于事件的事件,例如:<input onblur=“check():” ...
- string字符串长度和字节长度问题
string str = "abcdef 安安安"; int i = str.Length; byte[] bt = System.Text.Encoding.Default.Ge ...
- haproxy实现ssl套接字加密
概述 如果你的应用使用SSL证书,则需要决定如何在负载均衡器上使用它们. 单服务器的简单配置通常是考虑客户端SSL连接如何被接收请求的服务器解码.由于负载均衡器处在客户端和更多服务器之间,SSL连接解 ...