2013-01-02 159 views
6

我有这样的形式,具有标签控件和一个列表框里面:窗口大小调整时,如何调整表单元素的大小?

enter image description here

当我调整窗口的高度,我得到的是这样的:

enter image description here

然而,我实际上想要标签控件和列表框一起调整大小,具有以下结果:

enter image description here

我相信我能做到的只是回应的形式某种onResize()方法的这种效果,并尽我自己的计算手动更新选项卡控制和相应的列表框的大小。

不过,我见过很多应用达到这种效果,所以我怀疑其实有更好的办法来做到这一点 - 也许是一个内置功能。

你知道更好的方法来达到这个效果吗?

回答

8

这里是一个很好的教程,说明如何调整使用的码头和锚性质调整容器表单控件的WinForm控件:

http://www.techrepublic.com/article/manage-winform-controls-using-the-anchor-and-dock-properties/6165908

设置Anchor属性(顶部的四个值,右,下,左),你可以让你控制的边缘保持固定相对于即使它的尺寸重新调整的窗体控件。

+4

链接不是答案。 SO上的答案预计是独立的。请[查看这个元问题](http://meta.stackexchange.com/q/8231/135887)。 – Charles

+0

@Charles:你是否建议我不接受这个答案?奇怪的是,我没有看到教程(“锚定属性”这个词做了很多工作) – Voldemort

+1

我已经提到了必须使用的属性(锚点和停靠点),如果仍然不够。我会在一段时间内用相关信息更新答案。 – Cdeez

5

您可以使用tab控件的anchor属性 - 只需锚定所有四面。

1

可以使用的两个标签和列表框Dock属性是填补

0

您使用DockAnchor属性来控制如何在其父/容器大小的组件控件大小。

为了控制填充它的容器,只是

theControl.Dock = System.Windows.Forms.DockStyle.Fill 

保留一些空间,设置Anchor属性

theControl.Anchor = CType((System.Windows.Forms.AnchorStyles.Top _ 
    Or System.Windows.Forms.AnchorStyles.Bottom _ 
    Or System.Windows.Forms.AnchorStyles.Left _ 
    Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) 

您还可以设置在属性工具窗口这些属性。

1

这可能会帮助:

Private Sub frmMain_SizeChanged(sender As Object, e As EventArgs) Handles MyBase.SizeChanged 'tab container sizechanged event 
     tabMain.Dock = DockStyle.None 'set dock to none to allow resize 
     tabMain.Size = New Size(New Point(3, 3)) ' set size anything you want 
     tabMain.Dock = DockStyle.Fill 'set dock to fill to fit to container 
    End Sub 
+0

你应该在这里解释你在做什么。 – wonko79

+0

tabMain是tabControl。 frmMain是包含tabControl的表单。 这很容易! – gani

0

要获得期望的结果来代替控制你想要的是在标准尺寸的形式。然后使用 Anchor属性顶部,底部,左侧,右侧。这允许你指定你总是希望控制要相对定位在基于断最小尺寸的形式。

I.E: 将锚点属性设置为Top,Bottom,Left,Right,这将确保控件的顶部,底部,左侧,右侧边缘始终与每个边缘的距离相同,无论父级大小如何。

如果你想控制放置在特定的距离控制面使用的定位上,下,左的每个边缘,右

如果你想控制顶部

和左边缘锁定8个像素从顶部和左父级的边缘,将锚定属性设置为顶部,左侧的控件永远不会调整大小,它始终保持相对定位在8,8。

+0

添加一些格式化的代码到你的答案将是伟大的:) –

0

点击tab 1tab 2然后在Property Tab的旁边寻找Dock属性。然后选择中间的一个或输入完整。

或者

你可以找Anchor,并选择bottom tab,在top tagright tagleft tag

希望这可以帮到!

相关问题