【问题标题】:Using WeifenLuo DockPanel SuiteUsing WeifenLuo DockPanel Suite
【发布时间】:2012-01-30 05:59:24
【问题描述】:

我刚刚下载了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.如何adjustsizetoolbox。

2.如果我有form2 和dock panel 我如何在form1 中显示

提前致谢!

【问题讨论】:

    标签: vb.net winforms panel dockpanel-suite


    【解决方案1】:

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

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

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

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

    这就是你所说的 Q2 的意思吗?

    【讨论】:

      【解决方案2】:

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


      如何调整 DockForms 的大小

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

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-07-03
        • 1970-01-01
        • 2017-06-08
        • 1970-01-01
        • 1970-01-01
        • 2012-10-08
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多