WinForms SplitContainer及其间距和大小调整

时间:2013-04-09 09:52:15

标签: vb.net winforms visual-studio splitcontainer

我似乎很难按照我喜欢的方式调整SplitContainer。我有以下形式叫做frmMain:

frmMain Screenshot

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

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

我想删除灰色分割器,因为它没用。这是一种常见的美  错误,是否可以删除它?

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

Panel2是否也可以自动调整到窗口的宽度,以便你只有一个水平滚动条?

感谢您阅读我的问题,希望您可以帮我解决SplitContainer的问题。祝你有愉快的一天。

2 个答案:

答案 0 :(得分:2)

  

我想删除灰色分割器,因为它没用。这是一个常见的美容虫,是否可以删除它?

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

  

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

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

答案 1 :(得分:0)

您有两个选择:

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

对于2个面板控件,将panel1停靠到Left,然后将panel2停靠到Fill。要使用调整大小的UserControl填充panel2,请将其Dock属性设置为Fill。