Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vb.net/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vb.net 面板的形状高度_Vb.net_Windows Forms Designer - Fatal编程技术网

Vb.net 面板的形状高度

Vb.net 面板的形状高度,vb.net,windows-forms-designer,Vb.net,Windows Forms Designer,我对我正在开发的程序有疑问。抱歉,如果我的帖子不清晰,作为一个初学者编程完美主义者,我试图尽可能清楚地解释一切 我有一个名为frmMain.vb的Windows窗体,它有两个单独的面板,一个称为sidebarPanel,另一个称为mainPanel: 在运行时,窗体的外观如下所示: 我缩小了屏幕以适应本主题,实际大小为900600,通过此代码在frmMain_加载: Me.Size = New Size(900, 600) 现在,我创建了以下代码: With sidebarPanel

我对我正在开发的程序有疑问。抱歉,如果我的帖子不清晰,作为一个初学者编程完美主义者,我试图尽可能清楚地解释一切

我有一个名为frmMain.vb的Windows窗体,它有两个单独的面板,一个称为sidebarPanel,另一个称为mainPanel:

在运行时,窗体的外观如下所示: 我缩小了屏幕以适应本主题,实际大小为900600,通过此代码在frmMain_加载:

Me.Size = New Size(900, 600)

现在,我创建了以下代码:

With sidebarPanel
    .Top = 0
    .Left = 0
    .Width = 200
    .Height = 300
End With

With mainPanel
    .Top = 0
    .Left = 200
    .Width = 200
    .Height = 300
End With
如果您想知道侧边栏是蓝色的,那么这段代码来自一个dll,这段代码是我为了让这个问题变得简单而遗漏的。如果仔细查看源代码,您可以看到侧栏的宽度为200,主面板的起始宽度为200

别挡道了。我想知道答案,我已经搜索了Stackoverflow、Google和一些VB.NET论坛关于这些问题,但我似乎是一个孤独的人

如何使边栏与窗体保持100%的高度,这样如果调整大小,边栏的高度也会改变。同样的问题也适用于主面板


感谢您的阅读,感谢您的热情款待和回答。

您可以在表单的
Resize
事件中手动执行此操作,方法是将面板的
Height
属性设置为
Me.ClientSize.Height
,但是,在设计时执行此操作更容易

为此,在表单设计器中,首先定位面板并调整其大小,使其位于当前表单大小所需的位置,然后在这两个面板上适当设置
Dock
属性。您希望侧面板的
Dock
属性设置为顶部、左侧和底部。您可能希望将主面板的
Dock
属性设置为“上”、“下”、“左”和“右”(所有四个边)。正确设置dock属性后,控件将在调整窗体大小时自动调整自身大小


设置
Dock
属性后,可以通过在设计器中调整窗体的大小来测试它。

您可能会发现使用
拆分容器
控件更容易


对于更复杂的控件布局,您可以使用
TableLayoutPanel
来排列控件:将
TableLayoutPanel.Dock
属性设置为
Fill
,然后在
TableLayoutPanel
中设置每个控件的
锚定属性。在
表格布局面板的右上角有一个小箭头(在设计期间),允许您指定行和列的高度和宽度。

+1点很好。我应该提到这个选择。这样做会让用户可以调整侧边栏的大小,在这种情况下,这通常是您想要的?不过,可以使用SplitContainer,这是OP.Yes的另一个选项。很抱歉给你带来了困惑。SplitContainer就是我想到的那个。重读OP,这可能是更好的解决方案,我会更新我的答案。