【问题标题】:How can I move all the controls in a panel on form resize?如何在表单调整大小时移动面板中的所有控件?
【发布时间】:2011-03-26 15:40:47
【问题描述】:

我正在玩一个项目,C# .NET 4,但我有点卡住了。我有一个面板,该面板将根据文件夹中的项目数动态填充复选框,效果很好。

但是,当我调整表单大小时,我希望复选框在面板中移动,就像一个小复选框网格一样占据了它可以占用的空间。

到目前为止,我一直未能找到一种有效的方法来做到这一点。我还没有让它完全正常工作,但我不知道这很重要。我正在尝试的方法是资源杀手。

即。

int boxCount = panel1.Size.Width/123;
int x = 3, y = 3, i = 0;

foreach (Control chkbox in panel1.Controls)
{

      if (i < boxCount)
      {
            chkbox.Location = new Point(x, y);
            x += 123;
      }
      else
      {
            i = 0;
            x = 3;
            y += 123;
            chkbox.Location = new Point(x, y);
      }

      i++;
}

我正在寻找一些不会让我的 CPU 陷入瓶颈的东西,当我调整它的大小时,它不会将我的表单变成一本 3 页的翻书。作为参考,我想到了类似于 7 中的 Windows 桌面壁纸选择器,减去了实际控件的大小调整。

我没有使用过 WPF,但我很可能已经开始了解情况,所以我正在寻找一个花园式的 Windows 窗体解决方案。

【问题讨论】:

    标签: c# winforms layout controls resize


    【解决方案1】:

    听起来您正在寻找FlowLayoutPanel

    【讨论】:

    • 效果很好。我记得认为应该对此进行控制,但从未看过。谢谢!
    【解决方案2】:

    TableLayoutPanelFlowLayoutPanel 会满足您的需求吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-01-01
      • 1970-01-01
      • 2019-01-25
      • 2020-11-22
      • 2013-03-11
      • 1970-01-01
      • 1970-01-01
      • 2013-08-08
      相关资源
      最近更新 更多