如何让两个表单停靠在同一侧(Weifenluo)

How to have two forms docked on same side (Weifenluo)

我进行了大量搜索并研究了 Docksuite 示例,但未能成功地让简单的屏幕正常工作。我想要一个表格在上面,两个表格在左边打开。

到目前为止我做了什么:

  1. 创建了一个包含 DockPanel 的 FormMainDock; isMDIContainer = True
  2. 创建了三个继承自 DockContent 的 Form
  3. 在FormMainDock中有如下代码:

...

Private Sub FormMainDock_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  Me.DockPanel1.Theme = New VS2015DarkTheme
  Dim fTop As New FormTop
  fTop.Show(DockPanel1, DockState.DockTop)
  fTop.DockPanel.DockTopPortion = 120

  Dim fLeft1 As New FormLeft1
  fLeft1.Show(DockPanel1, DockState.DockLeft)

  Dim fLeft2 As New FormLeft2
  fLeft2.Show(DockPanel1, DockState.DockLeft)
  fLeft2.DockPanel.DockLeftPortion = 400

End Sub

...

这向我展示了

现在我想要的是这个

我不知道如何在启动时打开这两个表单。 任何帮助将不胜感激。

尽管我已经看过演示源代码,但我又看了一遍,知道这段代码有效,而且 Lex Li 的提示让我再看一遍,我强迫自己更深入地研究,并在一些人的帮助下C# 翻译器我想通了。当然最后还是很简单的。所以对于其他人来说,要想更快地解决这个问题,您只需要做的就是:

首先,创建一个包含 DockPanel 的 MainForm 并设置 isMDIContainer = True。 创建三个继承自 DockContent 的表单(不要忘记导入 WeifenLuo.WinFormsUI.Docking)。然后当你想得到图片中的样本时使用这个:

Private Sub FormMainDock_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  Me.DockPanel1.Theme = New VS2015DarkTheme 'This line isn't necessary

  Dim fTop As New FormTop
  fTop.Show(DockPanel1, DockState.DockTop)

  Dim fLeft1 As New FormLeft1
  fLeft1.Show(DockPanel1, DockState.DockLeft)

  Dim fLeft2 As New FormLeft2
  fLeft2.Show(fLeft1.Pane, DockAlignment.Bottom, 0.5)
End Sub

就是这样。玩得开心。