3

プログラムで作成したTableLayoutPanelがあります。正常に動作しますが、何かが見つかりませんでした。フォームのサイズが変更されたときに、列のサイズを自動的に設定するにはどうすればよいですか。パネルはDock.Topに設定されており、すべての列のサイズをパーセントで表すのではなく、フォームのサイズを変更すると、最後の列のみが大きくなります。これに対して何ができますか?各列にColumnStyleを追加する方法は次のとおりです。

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

3 に答える 3

2

ColumnStyles を SizeType.Percent に設定してみましたか?

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

于 2010-06-01T18:48:45.580 に答える
1

このコードを 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);
            }
于 2009-09-28T14:14:10.960 に答える
1

最初に ColumnStyles をクリアしますか? デバッガーやコードを使用して、列と同じ数の ColumnStyles があることを確認します。

于 2009-09-28T13:52:35.603 に答える