【问题标题】:Automatically resize TableLayoutPanel自动调整 TableLayoutPanel 的大小
【发布时间】:2009-09-28 13:43:13
【问题描述】:

我有一个以编程方式创建的 TableLayoutPanel。它工作正常,但我找不到东西:如何在调整表单大小时自动调整列大小?面板设置为 Dock.Top ,当我调整表单大小而不是按百分比调整每列的大小时,只有最后一列会增长。我能为此做些什么?以下是我为每列添加 ColumnStyle 的方法:

this.tablePanelFilter.ColumnStyles.Add(
  new ColumnStyle(SizeType.Percent,Convert.ToSingle(
     Math.Ceiling((decimal)100 / (decimal)columnCount))));

【问题讨论】:

    标签: .net winforms tablelayoutpanel


    【解决方案1】:

    您是否尝试将 ColumnStyles 设置为 SizeType.Percent?

    http://msdn.microsoft.com/en-us/library/system.windows.forms.tablelayoutpanel.columnstyles.aspx

    【讨论】:

      【解决方案2】:

      您是否先清除 ColumnStyles?使用调试器和/或一些代码来验证您是否拥有与列一样多的 ColumnStyles。

      【讨论】:

        【解决方案3】:

        将此代码添加到 form.Resize 事件解决了问题:

        this.tablePanelFilter.ColumnStyles.Clear();
        
                    for (int i = 0; i < this.tablePanelFilter.ColumnCount; i++)
                    {
                        ColumnStyle c = new ColumnStyle();
                        c.SizeType = SizeType.Percent;
                        c.Width = Convert.ToSingle(Math.Ceiling((decimal)100 / (decimal)this.tablePanelFilter.ColumnCount));
                        this.tablePanelFilter.ColumnStyles.Add(c);
                    }
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2020-06-29
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多