dock停靠管理器
DockManager停靠管理器可以对它所拥有的 停靠面板 的行为和外观设置进行集中控制。
DockPanel停靠面板是停靠应用程序的主要构成部件。
常规面板 DockPanel.ParentPanel 属性。 如果该属性返回 null,
容器面板: 分隔式容器 (split containers) 和标签式容器 (tab containers)。
DockPanel.Tabbed 属性
要确定某个特定的面板是否为常规面板还是容器面板,可以读取它的 DockPanel.Count
由于可能导致冲突,因此不要把多个停靠管理器放置在一个窗体/用户控件中。
而是使用单个停靠管理器,或使用多个被显示在各自主控 UserControl 对象内的停靠管理器。
DockingOptions.CloseActiveTabOnly 应用于标签式容器中的停靠面板。
指明在单击关闭按钮时,标签式容器本身或其活动面板是否被隐藏。
停靠管理器拥有的所有停靠面板都可以通过 DockManager.Panels 集合,
或者通过应用于 DockManager 对象的索引器符号进行访问。 此集合包含了所有常规面板和容器面板 (已隐藏的、自动隐藏的和可视的)。
对于常规(非容器)面板,如果调用 DockPanel.AddPanel 方法,
则此方法将创建一个新的包含了当前面板和新建面板的分隔式容器。
对于分隔式容器或标签式容器,如果调用 DockPanel.AddPanel 方法,
则此方法将把一个新的子面板追加到该容器中,该容器将包含新建的面板。
只需要获得已隐藏的面板,则可以使用 DockManager.HiddenPanels 属性。
所有可视的浮动面板和被停靠到窗体中的面板都被称为根面板,
并且可以通过 DockManager.RootPanels 集合访问它们。
通过 DockManager.RootPanels 集合来访问可视的浮动面板。
DockPanel.MakeFloat 使已有的面板浮动
获取所有面板信息:
[csharp]
StringBuilder sb = new StringBuilder();
if (docMain.ActivePanel != null)
{
sb.AppendLine("当前活动的页签文本是:" + docMain.ActivePanel.Text);
}
sb.AppendFormatLine("当前面板个数为:", docMain.Panels.Count);
int containerCount = 0;
int panelCount = 0;
for (int i = 0; i < docMain.Panels.Count; i++) { DockPanel pnl = docMain.Panels[i]; if (pnl.Count > 0)
{
containerCount++;
}
else
{
panelCount++;
}
}
sb.AppendFormatLine("容器数:{0},普通面板数:{1}", containerCount, panelCount);
[/csharp]
面板的基本操作:
[csharp] /// 创建面板,添加控件 UcTestDock uc = new UcTestDock(); uc.Dock = DockStyle.Fill; DockPanel pnl = docMain.AddPanel(DockingStyle.Float); pnl.ControlContainer.Controls.Add(uc); pnl.Text = "第1面板"; uc.SetText(pnl.Text); DockPanel pnl2 = pnl.AddPanel(); uc = new UcTestDock(); uc.Dock = DockStyle.Fill; pnl2.ControlContainer.Controls.Add(uc); pnl2.Text = "第2面板"; uc.SetText(pnl2.Text); pnl2.Options.ShowAutoHideButton = false; pnl2.Options.ShowCloseButton = false; pnl2.Options.ShowMaximizeButton = false; pnl2 = pnl.ParentPanel.AddPanel(); uc = new UcTestDock(); uc.Dock = DockStyle.Fill; pnl2.ControlContainer.Controls.Add(uc); pnl2.Text = "第3面板"; uc.SetText(pnl2.Text); pnl2 = pnl.ParentPanel.AddPanel(); uc = new UcTestDock(); uc.Dock = DockStyle.Fill; pnl2.ControlContainer.Controls.Add(uc); pnl2.Text = "第4面板"; uc.SetText(pnl2.Text); /// 控制按钮的显示 pnl2.Options.ShowAutoHideButton = false; pnl2.Options.ShowCloseButton = false; pnl2.Options.ShowMaximizeButton = false; pnl2 = pnl.ParentPanel.AddPanel(); uc = new UcTestDock(); uc.Dock = DockStyle.Fill; pnl2.ControlContainer.Controls.Add(uc); pnl2.Text = "第5面板"; uc.SetText(pnl2.Text); pnl.ParentPanel.Text = "zhu5"; /// 设置为标签式容器 pnl2.ParentPanel.Tabbed = true; /// 更改位置和大小 pnl2.ParentPanel.FloatLocation = new Point(400, 200); pnl2.ParentPanel.FloatSize = new System.Drawing.Size(500, 500); /// 更改页签顺序 ((DockPanel)(pnl2.ParentPanel.Controls[2])).Index = 1; ((DockPanel)(pnl2.ParentPanel.Controls[0])).Index = 4; /// 显示指定面板 ((DockPanel)(pnl2.ParentPanel.Controls[2])).Show(); /// 是否只关闭活动的页签 docMain.DockingOptions.CloseActiveFloatTabOnly = true; [/csharp]
dock停靠管理器的更多相关文章
- Clipboard Action for Mac(智能剪贴板历史管理器)破解版安装
1.软件简介 Clipboard Action 是 macOS 系统上一款智能剪贴板历史管理器,它允许剪贴板历史中的每一段内容执行操作.使用 AppleScript 或 Automator 工作 ...
- Sublime Text 3中文乱码解决方法以及安装包管理器方法
一般出现乱码是因为文本采用了GBK编码格式,Sublime Text默认不支持GBK编码. 安装包管理器 简单安装 使用Ctrl+`快捷键或者通过View->Show Console菜单打开命令 ...
- BZOJ 4196: [Noi2015]软件包管理器 [树链剖分 DFS序]
4196: [Noi2015]软件包管理器 Time Limit: 10 Sec Memory Limit: 512 MBSubmit: 1352 Solved: 780[Submit][Stat ...
- 定时管理器框架-Task.MainForm
入住博客园4年多了,一直都是看别人的博客,学习别人的知识,为各个默默无私贡献自己技术总结的朋友们顶一个:这几天突然觉得是时候加入该队列中,贡献出自己微弱的力量,努力做到每个月有不同学习总结,知识学习的 ...
- Swing布局管理器介绍
创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://zhangjunhd.blog.51cto.com/113473/128174 当选 ...
- Node.js包管理器Yarn的入门介绍与安装
FAST, RELIABLE, AND SECURE DEPENDENCY MANAGEMENT. 就在昨天, Facebook 发布了新的 node.js 包管理器 Yarn 用以替代 npm .咱 ...
- python2.7高级编程 笔记一(Python中的with语句与上下文管理器学习总结)
0.关于上下文管理器上下文管理器是可以在with语句中使用,拥有__enter__和__exit__方法的对象. with manager as var: do_something(var) 相当于以 ...
- java基础 布局管理器
概念: 组建在容器(比如JFrame)中的位置和 大小 是由布局管理器来决定的.所有的容器都会使用一个布局管理器,通过它来自动进行组建的布局管理. 种类: java共提供了物种布局管理器:流式布局管理 ...
- WIN7凭据管理器保存的凭据过段时间会自动删除的解决办法
控制面板\用户帐户和家庭安全\凭据管理器 进入该页面可看到所有凭据
随机推荐
- [系统集成] 基于Kubernetes 部署 jenkins 并动态分配资源
基于kubernetes 部署 jenkins master 比较简单,难点是为 jenkins 动态分配资源.基于kubernetes 为 jenkins 动态分配资源需要实现下述功能: 资源分配: ...
- Spring Boot(3)---自定义spring boot starter 问题
1. "Failed to process import candidates for configuration class [com.simple.....]": 主要原因: ...
- Microsoft JScript 运行时错误: '$' 未定义
在运行MVC Music Store时Visual Studio 捕捉到此错误: Microsoft JScript 运行时错误: '$' 未定义 可能是引用的Scripts 引用出错,检查当前文件中 ...
- 菜单栏被flex页面遮挡解决办法
- STM32 USB转串口驱动 Virtual COM Port Driver(V1.3.1)
将stm32的USB口接到PC端后,PC端会要求安装一个STM32 USB Virtual COM Port Driver,然后就可以用串口调试助手对其操作了
- 树莓派3B 安装微雪LCD5inch显示器(包含软键盘)
树莓派单独使用时,往往需要触摸屏和软键盘用以方便操作,微雪LCD显示器就能较好的实现这个功能, 正好实验室又买入了一个3B的板子和一个5inch的显示器,便对着官方的安装手册,亲自安装了一次. 一:材 ...
- .NET加密方法
SHA1加密: string[] ArrTmp = { Token, timestamp, nonce }; Array.Sort(ArrTmp);//字典排序 string tmpStr = str ...
- Oracle Merge备忘示例
Oracle的merge语法非常实用,用于Insert.Update判断情况.以下是自己书写的一个示例,以免时间长了语法形式忘记了. MERGE INTO T_FR_GUOSZX T USING (S ...
- NPOI Excel 单元格背景颜色对照表
NPOI Excel 单元格颜色对照表,在引用了 NPOI.dll 后可通过 ICellStyle 接口的 FillForegroundColor 属性实现 Excel 单元格的背景色设置,FillP ...
- [转]Amazon DynamoDB – a Fast and Scalable NoSQL Database Service Designed for Internet Scale Applications
This article is from blog of Amazon CTO Werner Vogels. -------------------- Today is a very exciting ...