学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll
- 控件dockpanel中提供了几个可用的类, 重要的有两个, 一是DockPanel, 一是DockContent,
DockPanel是从panel继承出来的, 用于提供可浮动的dock的子窗口进行浮动和dock的场所,
DockContent是从form类中继承出来的, 用于提供可浮动的窗口基类. 就是说: DockContent对象可以在DockPanel对象中任意贴边, 浮动, TAB化等. - 引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll。
- 工具箱—>右键—>选择项—>.net组件—>浏览—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出现dockPanel。
- 将dockPanel拖到窗体Form1上,设置Dock属性,我设置的是:Fill。窗体属性IsMdiContainer:True。
- 在代码中修改窗体继承于DockContent。 public partial class Form2 : DockContent
- 在主窗体中:
public partial class Form1 : DockContent
{
//子窗体
private FrmCustomer frmCustomer = new FrmCustomer();
private b_employee employee = new b_employee (); public Form1()
{
InitializeComponent();
frmCustomer.Show(this.dockPanel1);
employee.Show(this.dockPanel1);
System.Threading.Thread.Sleep();
} private void Form1_Load(object sender, EventArgs e)
{
Form2 frm = new Form2();
frm.Show(this.dockPanel1);
//窗体Form2添加到主窗体左边缘
frm.DockTo(this.dockPanel1,DockStyle.Left);
}
} - 在主窗体中添加右键事件,设置dockPanel的contentMenuScrip为拖拽的menuscrip,窗体添加
/// <summary>
/// 关闭所有窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void menu_Window_CloseAll_Click(object sender, EventArgs e)
{
CloseAllDocuments();
} public void CloseAllDocuments()
{
if (dockPanel1.DocumentStyle==DocumentStyle.SystemMdi)
{
foreach (Form form in MdiChildren)
{
form.Close();
}
}
else
{
IDockContent[] documents=dockPanel1.DocumentsToArray();
foreach (IDockContent content in documents)
{
content.DockHandler.Close();
}
}
}
/// <summary>
/// 关闭其他窗体
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void menu_Window_CloseOther_Click(object sender, EventArgs e)
{
if (dockPanel1.DocumentStyle == DocumentStyle.SystemMdi)
{
Form activeMdi = ActiveMdiChild;
foreach (Form form in MdiChildren)
{
if (form != activeMdi)
{
form.Close();
}
}
}
else
{
foreach (IDockContent document in dockPanel1.DocumentsToArray())
{
if (!document.DockHandler.IsActivated)
{
document.DockHandler.Close();
}
}
}
} /// <summary>
/// 找到窗体
/// </summary>
/// <param name="text"></param>
/// <returns></returns>
private DockContent FindDocument(string text)
{
if (dockPanel1.DocumentStyle == DocumentStyle.SystemMdi)
{
foreach (Form form in MdiChildren)
{
if (form.Text == text)
{
return form as DockContent;
}
}
return null;
}
else {
foreach (DockContent content in dockPanel1.Documents)
{
if (content.DockHandler.TabText==text)
{
return content;
}
} return null;
}
}
public DockContent ShowContent(string caption, Type formType)
{
DockContent frm = FindDocument(caption);
if (frm==null)
{
// frm = ChildWinManagement.LoadMdiForm(Portal.gc.MainDialog, formType) as DockContent;
}
frm.Show(this.dockPanel1);
frm.BringToFront();//将控件带到前面
return frm;
}
学习winform第三方界面weiFenLuo.winFormsUI.Docking.dll的更多相关文章
- Winform中DockPanel(引用WeifenLuo.WinFormsUI.Docking.dll组件)的使用
WeiFenLuo.WinFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可实现像Visual Studio的窗口停靠.拖拽等功能.WeifenLuo.Win ...
- weiFenLuo.winFormsUI.Docking.dll学习
引用方法: 1.建立一个WinForm工程,默认生成了一个WinForm窗体. 2.引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll. 3 ...
- 开源布局控件 WeifenLuo.WinFormsUI.Docking.dll使用
WeifenLuo.WinFormsUI.Docking是一个很强大的界面布局控件,可以保存自定义的布局为XML文件,可以加载XML配置文件.! 先看一下效果 使用说明: 1.新建一个WinForm程 ...
- WeifenLuo.WinFormsUI.Docking.dll的用法
基本框架 说明 weiFenLuo.winFormsUI.Docking.dll是开源项目DockPanel Suite的一个类库,可以实现像Visual Studio的窗口停靠.拖拽等功能.Weif ...
- WeiFenLuo.winFormsUI.Docking.dll的使用(停靠效果)
1. 重置工具箱: 新建一个WinForm程序,项目名称为TestDockPanelControl.选中Form1窗体后选择工具箱--->>新建个添加选项卡命名为WeiFenLuo--- ...
- C#中使用WeiFenLuo.WinFormsUI.Docking.dll实现窗口停靠效果
很酷的效果,很值得好好去学习的哈. 重置工具箱: 新建一个WinForm程序,项目名称为TestDockPanelControl.选中Form1窗体后选择工具箱--->>新建个添加选项卡命 ...
- WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一)
WinForm界面布局控件WeifenLuo.WinFormsUI.Docking"的使用 (一) 编写人:CC阿爸 2015-1-28 在伍华聪的博客中,看到布局控件"Weife ...
- WeifenLuo.WinFormsUI.Docking"的使用 z
在伍华聪的博客中,看到布局控件"WeifenLuo.WinFormsUI.Docking",发现的确是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件. ...
- Winform- 界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大.美观.不亚于商业控件.而且控件使用也是比较简单的. 实 ...
随机推荐
- [转]Part1: Understanding !PTE , Part 1: Let’s get physical
http://blogs.msdn.com/b/ntdebugging/archive/2010/02/05/understanding-pte-part-1-let-s-get-physical.a ...
- VS配置路径和宏
http://blog.csdn.net/puttytree/article/details/7838419
- 扩展progress_timer的计时精度
progress对外输出精度只有小数点后两位(这点可以运行上节程序进行验证),即精确到0.01秒. 我们使用模板技术仿造一个progress_timer编写一个新类:new_progress_time ...
- 深入理解 '0' "0" '\0' 0 之间的区别
看来基础还是很重要的,基础不扎实就难以学好c语言,就别说写出高质量的c语言代码了.今天,我就被这个问题折磨的不行了,哈哈,不过现在终于明白了‘\0’ ,‘0’, “0” 之间的区别了.困惑和快乐与你分 ...
- 微信,qq,微博如何不用每次清缓存就能看到h5修改过的结果
描述:每次在对js,和css进行修改,想要在微信,微博或则qq里面预览效果,会发现没有生效,那是因为这些客户端会将静态进行缓存,我们需要清理缓存才能看到修改过的效果,但是每次清理缓存会很麻烦,影响开发 ...
- Mac下体验Hexo与Github Pages搭建
很久之前就知道Github可以发布自己的博客,因为仅支持静态文件,一直懒于动手自己进行编辑.再了解到还存在 JekyII 和 Hexo 这样的内容生成框架后,终于决定体验一下. 一.本地环境准备. G ...
- 剑指offer五:
输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则. /* public class ListNode { int val; ListNode next = n ...
- 【树莓派】关于tinyproxy问题处理
一.tinyproxy服务启动问题解决 在配置好树莓派的设备上,发现 tinyproxy 启动时候存在问题,如下图: 经过半天的折腾,后来发现原来是由于异常关机导致临时文件生成错误 解决办法:删除/t ...
- Linux新建用户并添加到sudo组
原文参考链接:https://www.douban.com/note/338488349/ 以在kali 下添加一个test用户为例: Step1#:添加新用户useradd -r -m -s /bi ...
- 初识App安全性测试
目前手机App测试还是以发现bug为主,主要测试流程就是服务器接口测试,客户端功能性覆盖,以及自动化配合的性能,适配,压测等,对于App安全性测试貌似没有系统全面统一的标准和流程,其实安全性bug也可 ...