C# 如何处理控件和表单';它以WinForms伸展
假设我在Designer中有以下表单: 我想让用户能够随心所欲地拉伸此表单,并且所有控件的位置都应如图所示,无论用户如何更改此表单的大小,因此他们应该占用相同的空间,并坚持使用相同的控件和边框C# 如何处理控件和表单';它以WinForms伸展,c#,winforms,user-interface,C#,Winforms,User Interface,假设我在Designer中有以下表单: 我想让用户能够随心所欲地拉伸此表单,并且所有控件的位置都应如图所示,无论用户如何更改此表单的大小,因此他们应该占用相同的空间,并坚持使用相同的控件和边框 如何在WinForms中执行此操作?我知道有些东西像Dock等,但我没有找到在这种情况下使用它们的正确方法。在这种情况下,您想要的是锚定属性,而不是Dock。锚定意味着控件将始终与某些边(顶部、左侧、右侧和/或底部)保持相同的距离,即使这意味着必须更改大小;docking OTOH不关心边距,它只会填满
如何在WinForms中执行此操作?我知道有些东西像Dock等,但我没有找到在这种情况下使用它们的正确方法。在这种情况下,您想要的是
锚定属性,而不是Dock
。锚定意味着控件将始终与某些边(顶部、左侧、右侧和/或底部)保持相同的距离,即使这意味着必须更改大小;docking OTOH不关心边距,它只会填满一侧或所有一侧的所有可用空间
以下是您可能想要做的:
- 将两个图像按钮锚定到顶部和右侧
- 将OK按钮锚定到右侧和底部(我猜)
- 将大的
列表框
锚定到所有侧面
只需在
对于高度有限制的控件(如ListBox),设置锚点是不够的,应该将它们的值设置为false
我建议转到表单集,以防止用户将窗口大小调整为不需要的大小。在您的情况下,请将其设置为可接受的最小大小,以防止丑陋的小表单和不可用的列表框
使用一个固定面板的拆分面板。然后将ListBox.Dock
设置为Fill