Winform中使用DockPanel

使用该动态链接库,可是将Winform界面设计成Visual Studio界面的效果,支持选项卡的拖拽、浮动、停靠。

1、调用方法

在解决方案管理器中,项目名称节点上右键->添加引用->浏览->WeifenLuo.WinFormsUI.Docking.dll

工具箱空白处右键->选择项->.NET Framework组件->浏览,选择WeifenLuo.WinFormsUI.Docking.dll动态库, 确定后,工具箱中会多出一个DockPanel控件

2、具体使用方法

        一个窗体中可以停靠若干个选项卡,可以以普通选项卡形式停靠,也可以设置为文档形式,一个选项卡实际上也是一个窗体,这里称盛放选项卡的窗体为父窗体(MainForm),选项卡窗体为子窗体(ChildForm1、ChildForm2……)

2.1 父窗体设置

1)将MainForm窗体的IsMdiContainer属性设置为True

2)在MainForm中添加控件DockPanel,将DockPanel控件的Dock属性设置为Fill

3)通过设置DockPanel控件的DockBottomPortion、DockLeftPortion、DockRightPortion、DockTopPortion属性分别设置当子窗体停靠在父窗体底部、左端、右端、上端时的大小(底部和上端时,设置的为高度,左右设置的为宽度),如果设置的值小于1,则表示宽度(高度)占其父窗体的宽度(高度)的百分比,如果值大于1,则表示宽度(高度)的实际值。

4)如果想让MainForm支持多文档,需设置DockPanel控件的DocumentStyle属性为DockingMid表示支持多文档,设置DockPanel控件的DocumentTabStyle属性为Top或Bottom来控制多个文档以多选项卡形式排列时,选项卡显示在主窗体的顶端开始底端。

2.2 子窗体设置

1)添加子窗体(之后为一个选项卡)在窗体代码中添加命名空间,代码为 using WeifenLuo.WinFormsUI.Docking;

2)该窗体原本继承Form类,改为继承DockContent。由于DockContent继承于Form类,而DockContent又多一部分自身的属性和方法,所以,窗体继承DockContent后既包含Form的属性和方法也包含DockContent多出的属性和方法。

3)子窗体的ShowHint属性用于设置选项卡首次显示时的停靠卡,如果想将窗体设置为文档形式,则设置窗体的ShowHint属性为Document。

4)如果不想显示文档的关闭按钮可以设置子窗体的CloseButton和CloseButtonVisible属性值为false。

2.3 将选项卡添加到主窗体中

示例代码如下

复制代码
public partial class MainForm : Form
    {
        private ChildForm1  childForm1 = new ChildForm1();//子窗体1,之后作为一个选项卡
        private ChildForm2  childForm2 = new ChildForm2();//子窗体2,之后作为第二个选项卡
        public MainForm()
        {
            InitializeComponent();
        }
    </span><span style="margin:0px; padding:0px; color:rgb(0,0,255); font-size:12px!important; line-height:1.5!important">private</span> <span style="margin:0px; padding:0px; color:rgb(0,0,255); font-size:12px!important; line-height:1.5!important">void</span> MainForm_Load(<span style="margin:0px; padding:0px; color:rgb(0,0,255); font-size:12px!important; line-height:1.5!important">object</span><span style="margin:0px; padding:0px; font-size:12px!important; line-height:1.5!important"> sender, EventArgs e)
    {
        childForm1.Show(</span><span style="margin:0px; padding:0px; color:rgb(0,0,255); font-size:12px!important; line-height:1.5!important">this</span><span style="margin:0px; padding:0px; font-size:12px!important; line-height:1.5!important">.dockPanel1);//dockPanel1为MainForm中添加的DockPanel控件</span><span style="margin:0px; padding:0px; font-size:12px!important; line-height:1.5!important">
        childForm2.Show(</span><span style="margin:0px; padding:0px; color:rgb(0,0,255); font-size:12px!important; line-height:1.5!important">this</span><span style="margin:0px; padding:0px; font-size:12px!important; line-height:1.5!important">.dockPanel1);</span><span style="margin:0px; padding:0px; font-size:12px!important; line-height:1.5!important">
    }
}</span></pre> 
复制代码

其他可参照学习:http://blog.sina.com.cn/s/blog_4c8bb86b0100j3ge.html
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值