自动调整的TableLayoutPanel [英] Automatically resize TableLayoutPanel

查看:778
本文介绍了自动调整的TableLayoutPanel的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个编程方式创建的TableLayoutPanel。它工作正常,但我无法找到的东西:自动我怎么可以把它的大小列时窗体大小?所述面板被设置为Dock.Top并且当我调整每列作为百分数上浆的形式代替,只有最后一列的增长。我能做些什么了呢?以下是我添加ColumnStyle为每个列:

  this.tablePanelFilter.ColumnStyles.Add(
  新ColumnStyle(SizeType.Percent,Convert.ToSingle(
     Math.Ceiling((十进制)×100 /(十进制)列数))));
 

解决方案

添加此code到form.Resize事件解决了这个问题:

  this.tablePanelFilter.ColumnStyles.Clear();

            的for(int i = 0; I< this.tablePanelFilter.ColumnCount;我++)
            {
                ColumnStyle C =新ColumnStyle();
                c.SizeType = SizeType.Percent;
                c.Width = Convert.ToSingle(Math.Ceiling((十进制)100 /(十进制)this.tablePanelFilter.ColumnCount));
                this.tablePanelFilter.ColumnStyles.Add(C);
            }
 

I have a programmatically created TableLayoutPanel. It works fine but I couldn't find something: how can I make it size columns automatically when the form is resized? The panel is set to Dock.Top and when I resize the form instead of sizing every column as percents, only last column grows. What can I do for this? Here's how I add ColumnStyle for each column:

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

解决方案

Adding this code to form.Resize event solved the problem:

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);
            }

这篇关于自动调整的TableLayoutPanel的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆