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

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252078.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

MyBatis中if,where,set标签

<if>标签 <select id"findActiveBlogWithTitleLike"resultType"Blog">SELECT * FROM BLOG WHERE state ‘ACTIVE’ <if test"title ! null">AND title like #{title}</if> </select> if标签通常伴随着where,set…

Python3基础 __repr__ 类的实例对象的名字 可以打印文字(1)

引用自&#xff1a;http://www.bubuko.com/infodetail-1918622.html 这个__repr__的作用从下边的例子中可以看出,返回实例化对象的表达 code: class MyClass() :def __str__(self) :return "我是MyClass的一个实例"def __repr__(self) :return "这回连print都省…

Day03:文件打开;错误处理

错误处理 try: #要执行的代码 except 错误的类型&#xff08;可选&#xff09;: #发生错误时执行的代码 finally: #有没有发生错误都执行的代码 复制代码with open() as 变量名&#xff1a; with提供一种叫上下文管理协议的python技术&#xff0c;系统会自动关闭文件 open() 默…

Python: pip升级报错了:You are using pip version 10.0.1, however version 20.3.3 is available.

1,Python使用命令&#xff1a;python -m pip install --upgrade pip升级pip的时候报了下面这个错 2,换了个命令&#xff1a; python -m pip install --upgrade pip -i https://pypi.douban.com/simple 更新成功了&#xff0c;但又报了一个新的错误&#xff1a; AttributeError:…

新手上路之Hibernate:第一个Hibernate例子

一、Hibernate概述 &#xff08;一&#xff09;什么是Hibernate&#xff1f; Hibernate核心内容是ORM&#xff08;关系对象模型&#xff09;。可以将对象自动的生成数据库中的信息&#xff0c;使得开发更加的面向对象。这样作为程序员就可以使用面向对象的思想来操作数据库&…

模板标签及模板的继承与引用

1.常用的模板标签 - 作用是什么:提供各种逻辑 view.py: def index(request):#模板标签 --常用标签 总结&#xff1a;语法 {% tag %} {% endtag %} {% tag 参数 参数 %} 示例 展示页index.html&#xff0c;包含for标签&#xff0c;if标签&#xff0c;url标签 {% extends teacher…

文件夹操作之创建

创建文件夹可通过Directory类的CreateDirectory方法来实现格式为&#xff1a;Directory.CreateDirectory(“文件路径”)&#xff1b;String path“C:\Users\Administrator\Desktop\51zxw”&#xff1b; If&#xff08;Directory.exists&#xff08;path&#xff09;&#xff09…

doxygen

http://www.doxygen.nl/转载于:https://www.cnblogs.com/zengkefu/p/7383793.html

C#:RichTextBox 追加其它颜色的行列

1、新建静态扩展方法public static class RichTextBoxExtension{public static void AppendTextColorful(this RichTextBox rtBox, string text, Color color, bool addNewLine true){if (addNewLine){text Environment.NewLine;}rtBox.SelectionStart rtBox.TextLength;rtB…

Golang实现一个密码生成器

小地鼠防止有人偷他的果实&#xff0c;在家里上了一把锁。这个锁怎么来的呢&#xff1f;请往下看。。 package mainimport ("flag""fmt""math/rand""time" )var (length intcharset string )const (NUmStr "0123456789"C…

Java基础知识(二)

1、String、StringBuffer、StringBuilder 操作少量数据->String单线程操作字符串缓冲区下操作大量数据->StringBuilder多线程操作字符串缓冲区下操作大量数据->StringBuffer可变性&#xff1a;String类中使用final关键字private final char value[]&#xff0c;所以St…

C# WPF:初识布局容器

StackPanel堆叠布局 StackPanel是简单布局方式之一&#xff0c;可以很方便的进行纵向布局和横向布局 StackPanel默认是纵向布局的 <Window x:Class"WpfApplication1.MainWindow" xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation" …

Kibana源码分析--Hapijs路由设置理解笔记

【ES6解构赋值】&#xff1a;https://developer.mozilla.org/zh-CN/docs/Web/JavaScript/Reference/Operators/Destructuring_assignment 【Joi APi】&#xff1a;https://github.com/hapijs/joi/blob/v13.1.2/API.md 转载于:https://www.cnblogs.com/lishidefengchen/p/866874…

Python打包EXE神器 pyinstaller

最近由于项目需要&#xff0c;以前的python文件需要编辑为EXE供前端客户使用。 由于最早接触的是distutils&#xff0c;所以一开始准备使用distutils和py2exe搭配来进行python的exe化&#xff0c;也就是传统的使用setup.py的方式来进行exe安装。但是结果都不是很好&#xff0c;…

好程序员HTML5前端教程-css的引入方式和选择器

好程序员HTML5前端教程-css的引入方式和选择器 01.引入css方式&#xff08;重点掌握&#xff09; 行内样式 内接样式 外接样式      3.1 链接式      3.1 导入式 css介绍 现在的互联网前端分三层&#xff1a; HTML&#xff1a;超文本标记语言。从语义的角度描述页面结…

4.4.6 数组也能无锁:AtomicIntegerArray

数组也可以实现cas操作&#xff0c;有以下几个类以及用法如下&#xff1a; public class AtomicTntegerArrayTest {public static void main(String[] args) {AtomicIntegerArray atomicIntegerArraynew AtomicIntegerArray(3);AtomicLongArray atomicIntegerArray1new AtomicL…

20种PLC元件编号和Modbus编号地址对应表

1、三菱&#xff1a; X元件支持Modbus之02功能码&#xff1b; Y元件支持Modbus之01、05、15功能码&#xff1b; D元件支持Modbus之03、06、16功能码。 2、西门子&#xff1a; I元件支持Modbus之02功能码&#xff1b; Q元件支持Modbus之01、05、15功能码&#xff1b; V元件…

暑期学习

由于最后大作业的呈现情况与短学期所完成的还相差甚远&#xff0c;所以在暑期的时候开始进一步的细化。 在这个过程之中产生了如下的问题&#xff1a; 已解决的有&#xff1a; 1.用a标签在同一页面实现跳转。 要点&#xff1a;标记<a href"../home#pre">的时候…

五、RabbitMQ的消息属性(读书笔记)

2019独角兽企业重金招聘Python工程师标准>>> 简介 当使用RabbitMQ发布消息时&#xff0c;消息又AMQP规范中的三个低层帧类型组成&#xff1a; Basic.publish方法帧&#xff1b;内容头帧&#xff1b;消息体帧&#xff1b;这三种帧类型按顺序一起工作&#xff0c;以便…

异步和单线程

转载于:https://www.cnblogs.com/sunmarvell/p/8674748.html