7

我刚刚下载了WeifenLuo(Dock Panel Suite)并尝试使用它,但我找不到有关如何使用它的特定文档。

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

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

Public Class ToolboxWindow
    Inherits WeifenLuo.WinFormsUI.Docking.DockContent

    Public Sub New()

    End Sub
End Class

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

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.How to adjustthe size.toolbox

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

提前致谢!

4

2 回答 2

7

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

DockPanel 容器有一个DockLeftPortion属性(Right、Bottom 和 Top)。这将左侧区域的宽度指定为像素或可用区域的一部分。我还没有看到任何允许它采用停靠控件大小的东西。

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

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

这就是你说的Q2吗?

于 2012-01-04T10:16:12.283 回答
5

这是一篇旧帖子,但是在寻找其他内容时,我发现就在今天,我找到了答案。


如何调整 DockForms 的大小

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

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

然后,为了使其工作,将其粘贴到主窗体中:

dockPanel.Extender.FloatWindowFactory = new CustomFloatWindowFactory();

如何显示停靠面板

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

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

namespace mynamespace{
public partial class MyForm: DockContent {
    public dockform_MyForm() {
        InitializeComponent();
    }

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

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

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

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

showMyFormDocked();

我从研究源文档并尝试复制它们中学到了所有这些。

于 2012-07-18T22:36:12.343 回答