0

我似乎很难按照自己喜欢的方式调整 SplitContainer。我有以下名为 frmMain 的表格:

frm主屏幕截图

在表单加载代码中,我必须遵循以下代码:

With MainContainer
    .IsSplitterFixed = True
    .Dock = DockStyle.Fill
    .SplitterDistance = 200
    .FixedPanel = FixedPanel.Panel1
    .Panel1.BackgroundImage = Resources.My.Resources.ResourceFile._001
    .Panel2.BackColor = Color.White
    .Panel2.AutoScroll = True
End With

当我运行代码时,我得到以下信息:

frmMain(已编译)

我想删除灰色分离器,因为它没有用。这是一个常见的美容错误,是否可以将其删除?

SplitContainer 的第二个问题是,如果我调整窗口大小,Panel1 中的 backgroundImage 和 Panel2 中的白色不会随窗口调整。我搜索了 Resize 代码的高低,但我找不到它。Panel2 具有用户控件,例如。仪表板并以这种方式加载:MainContainer.Panel2.Controls.Add(Dashboard).

Panel2是否也有可能自动调整到窗口的宽度,这样你就只有一个水平滚动条了?

感谢您阅读我的问题,希望您能帮助我解决 SplitContainer 的问题。祝你今天过得愉快。

4

2 回答 2

2

我想删除灰色分离器,因为它没有用。这是一个常见的美容错误,是否可以将其删除?

如果您不希望用户看到或移动拆分器,为什么要使用拆分容器?作为替代方案,请考虑使用配置为 1 行和 2 列的 TableLayoutPanel。第一列将是绝对 200 像素宽,而第二列将设置为 100% 宽。在这两个单元格中的每一个中,您都可以放置一个面板,该面板停靠并设置为边距为 0,0,0,0。

SplitContainer 的第二个问题是,如果我调整窗口大小,Panel1 中的 backgroundImage 和 Panel2 中的白色不会随窗口调整。... Panel2 是否也有可能自动调整到窗口的宽度,以便您只有一个水平滚动条?

虽然我没有模拟您当前的解决方案,但我无法通过快速模拟我上面提出的解决方案来复制这些问题。关于自动滚动,出现滚动条的唯一原因是控件不在屏幕边缘或可用屏幕空间小于面板的最小尺寸。

于 2013-04-09T16:56:08.927 回答
0

您有 2 个选项:

  • 使用TableLayoutPanel(正如@erdomke 建议的那样)
  • 使用 2 个Panel控件

对于 2 个面板控件,停靠panel1Left和停靠panel2Fill。要使用调整大小的 UserControl 填充 panel2,请将其 Dock 属性也设置为 Fill。

于 2013-04-09T18:06:16.973 回答