Winform- 界面开发之布局控件"WeifenLuo.WinFormsUI.Docking"的使用
布局控件"WeifenLuo.WinFormsUI.Docking"是一个非常棒的开源控件,用过的人都深有体会,该控件之强大、美观、不亚于商业控件。而且控件使用也是比较简单的。
实现步骤
1)引用—>添加引用—>浏览—>weiFenLuo.winFormsUI.Docking.dll。
2)主窗体改名为FormMainWnd,并将属性IsMdiContainer:True。
3)工具箱—>右键—>选择项—>.net组件—>浏览—>weiFenLuo.winFormsUI.Docking.dll—>在工具箱出现dockPanel。
4)将dockPanel拖到窗体FormMainWnd上,设置Dock属性为:Fill。
添加FORM1窗体
实现代码如下:
public partial class Form1 : WeifenLuo.WinFormsUI.Docking.DockContent { private FormMainWnd mainForm; public Form1(FormMainWnd f) { mainForm = f; InitializeComponent(); } private void button1_Click(object sender, EventArgs e) { mainForm.ShowFrom<Form2>(); } }
添加FORM2窗体
实现代码如下:
public partial class Form2 : WeifenLuo.WinFormsUI.Docking.DockContent { public Form2() { InitializeComponent(); } }
将FORM1和FORM2的HIDEONCLOSE属性设为TRUE
主窗体的代码
public partial class FormMainWnd : Form { public FormMainWnd() { InitializeComponent(); } private void Form1_Load(object sender, EventArgs e) { //显示左边FORM1工具箱效果 dockPanel1.DocumentStyle = DocumentStyle.DockingMdi; Form1 form = new Form1(this); form.Show(dockPanel1, DockState.DockLeft); //显示右边FORM2 Form2 form2 = new Form2(); ShowFrom<Form2>(); } public void ShowFrom<T>() where T : DockContent, new() { foreach (var child in this.dockPanel1.Documents) { var dFrm = child as T; if (dFrm != null) { dFrm.Activate(); return; } } new T().Show(dockPanel1); } }
分类:
.NET/WinForm
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
2012-09-25 维塔斯音乐收藏
2012-09-25 Java- 事件处理机制