c# - 如何将组件的大小链接到窗口大小?

标签 c# .net winforms windows-forms-designer

我正在制作一个简单的 WinForms 程序。
我想将组件的大小链接到窗口的大小。

假设用户通过拖动窗口的边框来放大或缩小窗口:我希望组件在窗口变大时变大,反之亦然。

假设我们有两个并排放置在窗口中央的按钮:我想让它们的大小相同,从而填满整个窗口的宽度。

我该怎么做?

最佳答案

示例程序,使用 TableLayoutPanel和 2 个按钮:

  • 在窗体中添加一个 TableLayoutPanel
    1. 编辑 Columns 和 Rows 集合,使您有 2 个列,大小均为 50% 和一个行,设置为 Autosize
    2. 将 TableLayoutPanel 的 Location.X 设置为 0 并将其宽度调整为 Form 的宽度。
    3. 将 TLP Anchor 属性设置为 LeftRight
    4. 调整并拖动行高使其成为将容纳的按钮大小的两倍
  • 向表单添加一个按钮
    1. 根据需要调整按钮的外观。
    2. CTRL-拖动按钮创建一个完全相同的副本
    3. 将两个按钮添加到 TableLayoutPanel 的两个单元格
    4. SHIFT - 选择两个按钮并将 Dock 属性设置为 DockStyle.Fill
    5. 您现在可以调整按钮的 Margin 属性(仍被选中,因此相同的设置将应用于两者)以修改控件之间的空间<
  • 根据需要重新调整 TableLayoutPanel 的唯一行高。
  • 额外:如果表单上只有这些控件,您可能需要修复表单的 MinimumSize,以避免在调整表单大小时,您的控件缩小到面目全非,破坏了整体布局:将设计器中的窗体大小调整到托管控件布局受损的程度,找到合适的最小尺寸并将此度量用作窗体的 MinimumSize属性(property)。 MinimumSize 可以仅使用 WidthHeight 度量值设置(例如,(100, 0)) .这限制了表单的 Width 而不是 Height。当然,或者相反。

If, when dragging the Buttons inside the TableLayoutPanel, the Buttons are not automatically inserted at the Top-Left position of the cell and instead they appear positioned in a random place, then the TableLayoutPanel has gone rogue and needs to be put down. Delete it and drop another on the Form. Rinse and repeat.

This may happen if you tamper with the layout a bit. Better start over than trying to correct the problem.

TableLayoutPanel Control Overview

关于c# - 如何将组件的大小链接到窗口大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55827720/

相关文章:

c# - 重构许多重复的 ProducesResponseType 以使其干燥

c# - 如何克隆一个 treeview c# 并保存它以便以后恢复

c# - 为什么方法缺乏凝聚力(LCOM)包括getters和setters

.net - F#记录与.net结构

c# - 类对象从 View 到 Controller -> NULL

c# - 模型 View 展示器,如何在 View 之间传递实体?

c# - 如何判断鼠标是否在顶层窗口上?

c# - 按名称在 Windows 窗体中查找控件

c# - 为什么 MailAddress 认为 'john@gmail.' 是有效的电子邮件地址?

c# - 在 PreRender 中读取脚本标签