【问题标题】:Auto resize Winform- messing up the controls order自动调整 Winform 大小 - 弄乱控件顺序
【发布时间】:2016-05-18 08:41:04
【问题描述】:

我开发了一个带有大测试框和下面的按钮的winform。

我将文本框 Anchor 设置为 4 个方向,因此当 winform 调整大小时,tetbox 将相应调整大小。
但是,下面不应调整大小的按钮被较大的文本框覆盖。
我怎样才能防止这种情况?

【问题讨论】:

  • 我不是 C# 类型的人,但仅锚定左侧和顶部是否更有意义。这在 C# 中甚至可能吗?或者也许在调整大小时重新计算,例如:button_top = box_top+height+buffer 等。请原谅语法,我不做 C#。

标签: c# winforms controls window-resize


【解决方案1】:
  1. 使用dock = Fill将文本框停靠在表单中。
  2. 将面板添加到控件并将其设置为停靠 = 底部
  3. 确保文本框在文档大纲中的面板之前(而不是嵌套在其中!)。如果您弄错了这个顺序,面板将被文本框遮住。
  4. 通过拖动文本框区域与其下方面板之间的线来调整文本框区域的高度。您必须先单击面板,然后才能拖动此线。
  5. 将您的按钮和其他控件添加到面板。查看文档大纲以确保它们正确嵌套在面板中。
  6. 在面板中根据需要对齐按钮和其他控件。

注意:要查看文档大纲窗口:查看 => 其他窗口 => 文档大纲

【讨论】:

    【解决方案2】:

    您应该设置这些锚点:

    • 大文本框:上、右、下、左

    • 按钮:左,下

    • 小文本框:右、下、左

    您可能需要在表单中添加一个MinimumSize 以避免在太小时弄乱布局。

    这是一个现场演示:

    【讨论】:

    • 非常感谢,很好的回答。您是如何附上演示视频的?
    • 我使用ShareX 以 Gif 格式截取屏幕,然后上传。真正得心应手的工具。它也是开源的,用 C# 编写。
    • 很高兴知道。再次感谢。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-04-07
    • 2019-08-28
    • 1970-01-01
    • 2011-08-29
    相关资源
    最近更新 更多