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

      

  • 相关阅读:
    15.RDD 创建内幕解析
    14.spark RDD解密
    我的读书笔记-《异类》
    深入解析单例线程安全问题的迷思
    一个关于数学归纳法的悖论问题-续
    一个关于数学归纳法的悖论问题
    简易解说拉格朗日对偶(Lagrange duality)(转载)
    unity3d NavMeshAgent 寻路画线/画路径
    unity3d easytouch计算摇杆旋转角度以及摇杆八方向控制角色
    unity3d 摄像机跟随角色时被物体遮挡解决方案
  • 原文地址:https://www.cnblogs.com/cxeye/p/4837160.html
Copyright © 2020-2023  润新知