首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用WeifenLuo DockPanel套房

使用WeifenLuo DockPanel套房
EN

Stack Overflow用户
提问于 2011-12-29 22:31:59
回答 2查看 11.3K关注 0票数 7

我刚刚下载了WeifenLuo(码头面板套房)并尝试使用它,但是我找不到关于如何使用它的特定文档。

我已经经历了一些这样的问题,终于有了一些开始。

下面是我所做的工作:我创建了一个ToolboxWindow类,如下所示:

代码语言:javascript
复制
Public Class ToolboxWindow
    Inherits WeifenLuo.WinFormsUI.Docking.DockContent

    Public Sub New()

    End Sub
End Class

并试图以这种方式创建此工具箱的实例:

代码语言:javascript
复制
Public Class Form1
    Private toolboxWindow As ToolboxWindow

    Public Sub New()
        Me.InitializeComponent()

        'Create new ToolboxWindow
        toolboxWindow = New ToolboxWindow()
    End Sub

    Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs) Handles MyBase.Load
        'Show it
        toolboxWindow.Show(DockPanel1, DockState.DockLeft)
    End Sub
End Class

最后的结果是这样告诉我的?

1.如何实现adjust size of toolbox

2.如果我有form2dock panel,如何在form1中显示

提前谢谢!

EN

回答 2

Stack Overflow用户

发布于 2012-01-04 10:16:12

Q1如何调整工具箱的大小。

DockPanel容器具有一个DockLeftPortion属性(右、底部和顶部也是)。这将左边区域的宽度指定为像素或可用区域的比例。我还没有看到任何允许它接受停靠控件大小的东西。

Q2如果我有带有码头面板的form2,如何在form1中显示

如果您有两个顶级应用程序窗体,每个都带有一个停靠面板,则可以将适当的dockpanel控件作为第一个参数传递给Show()方法。

这就是你所说的Q2吗?

票数 7
EN

Stack Overflow用户

发布于 2012-07-18 22:36:12

这是一个旧的帖子,但在寻找其他东西时,我看到了,就在今天,我找到了答案。

如何调整DockForms的大小

要调整表单的大小,这里有一种方法可以让您修改它们。看这儿。只需将其粘贴到主子的名称空间中(我将我的名称空间放在底部):

代码语言:javascript
复制
public class CustomFloatWindow : FloatWindow {
    public CustomFloatWindow(DockPanel dockPanel, DockPane pane)
        : base(dockPanel, pane) {
            FormBorderStyle = FormBorderStyle.Sizable;
            MaximizeBox = false;
            MinimizeBox = false;
                            Width = 50;
    }

    public CustomFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds)
        : base(dockPanel, pane, bounds) {
        FormBorderStyle = FormBorderStyle.Sizable;
        MaximizeBox = false;
        MinimizeBox = false;
                    Width = 50;
    }
}

public class CustomFloatWindowFactory : DockPanelExtender.IFloatWindowFactory {
    public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane, Rectangle bounds) {
        return new CustomFloatWindow(dockPanel, pane, bounds);
    }

    public FloatWindow CreateFloatWindow(DockPanel dockPanel, DockPane pane) {
        return new CustomFloatWindow(dockPanel, pane);
    }
}

然后,为了使它工作,将它粘贴到主表单中:

代码语言:javascript
复制
dockPanel.Extender.FloatWindowFactory = new CustomFloatWindowFactory();

如何显示停靠面板

要显示停靠在码头窗体中的面板,您必须创建一种表单模板,并在其代码(其中写为Form )中将其更改为DockContent,如下所示:

现在,在您想要在对接面板中使用的表单中,修改代码如下(注意DockContent作为类型,而不是Form):

代码语言:javascript
复制
namespace mynamespace{
public partial class MyForm: DockContent {
    public dockform_MyForm() {
        InitializeComponent();
    }

    private void MyForm_Load(object sender, EventArgs e) {
    }
}
}

然后,为了停靠它,我们首先声明新表单,然后创建它。我喜欢这个:

代码语言:javascript
复制
//in your form main sub:
private dockform_MyForm dform_MyForm = new MyForm();

//now, somewhere in your form's class, put this:
public void showMyFormDocked() {
    dform_MyForm = new MyForm();
    dform_MyForm.Show(dockPanel);
}

最后,为了显示表单,您只需从任何地方调用它:

代码语言:javascript
复制
showMyFormDocked();

我从研究原始文档并试图复制这些文档中学到了这一切。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8674266

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档