【问题标题】:How to configure winforms controls so they don't overlap each other如何配置winforms控件使它们不会相互重叠
【发布时间】:2013-11-28 13:08:10
【问题描述】:

我制作了一个用户控件,其中包含 7 个控件(标签、dateTimePickers 和 Combobox),它们排成一行。看起来像这样:

现在我需要调整用户控件的大小,并且我想为每个元素(子控件)指定最小宽度,并且我还配置了锚点,但是当我调整表单大小时,控件相互重叠。我该如何正确配置它,或者,我可能需要为此使用一些容器?

如有任何帮助,我将不胜感激!

【问题讨论】:

  • 您是在使用容器内的控件,还是都锚定在主窗体上?

标签: c# winforms user-controls


【解决方案1】:

我会将它们全部放在一个 WinForms 布局容器中,例如TableLayoutPanelFlowLayoutPanel (教程herehere)。

您必须四处看看它们是否适合您的情况,但它们通常会注意保持控件分开并防止意外重叠。

【讨论】:

  • 授予,我尝试使用 FlowLayoutPanel,但我无法正确配置它,当我调整它的大小时,我的按钮(位于右侧)刚刚消失。在您的链接(关于 FlowLayoutPanel 的教程)中,我还没有找到如何弄清楚
  • 我希望我的所有子控件都调整为最小尺寸。例如,我将 7 个控件的宽度设置为 200 像素,最小宽度设置为 100 像素,这样该控件将需要 1400 像素的宽度,但是当我调整控件大小时,控件会变得更小,这样我就可以将控件的大小调整为 700 像素(100* 7)。希望你能理解我
  • 我什至知道如何在 wpf 中制作它,但我的项目使用的是 winforms。所以你没有任何建议如何制作?还是我必须编写自己的 OnResize 逻辑?
【解决方案2】:

尝试使用拆分容器,然后将控件停靠在拆分容器中

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多