2

TableLayoutPanelGUIの固定領域に動的に行を追加したかったのです。したがって、レコード数が増える場合は、ユーザーがより多くのレコードを表示できるようにする垂直スクロールバーが必要です。この目的のために、プロパティを設定AutoScroll = true;しましたが、機能していません。

CheckBox c = new CheckBox();
c.Text = "Han";
tableLayoutPanel1.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));
this.tableLayoutPanel1.RowCount = 1; this.tableLayoutPanel1.Controls.Add(c, 0, 0);
tableLayoutPanel1.AutoScrollPosition = new Point(0, tableLayoutPanel1.VerticalScroll.Maximum);
this.tableLayoutPanel1.AutoScroll = true;
tableLayoutPanel1.Padding = new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0);
4

2 に答える 2

7

別の質問のコメントからコードを見ると、すべての行に行スタイルを追加しているようです。スタイルを追加せずに行を追加するか、最初に1つのスタイルを追加してから、すべての行を追加してください。

  tableLayoutPanel1.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
            tableLayoutPanel1.RowStyles.Add(new RowStyle(SizeType.AutoSize));

            this.tableLayoutPanel1.Controls.Add(c);
            this.tableLayoutPanel1.Controls.Add(c1);
            this.tableLayoutPanel1.Controls.Add(c2);
tableLayoutPanel1.VerticalScroll.Maximum = 200;
            this.tableLayoutPanel1.AutoScroll = true;
于 2012-12-24T14:14:53.050 に答える
5

したがって、あなたはあなたのコードを投稿しませんでした、私はあなたが間違っていることを言うことができません。ただし、これは、テーブルレイアウトパネルにコントロールを追加する方法です。

tableLayoutPanel.GrowStyle = TableLayoutPanelGrowStyle.AddRows;
tableLayoutPanel.RowStyles.Add(new RowStyle(SizeType.AutoSize));
tableLayoutPanel.RowCount = tableLayoutPanel.RowStyles.Count;
YourCountrol control = new YourControl();
// setup your control properties
tableLayoutPanel.Controls.Add(control);
// scroll to the bottom to see just added control
tableLayoutPanel.AutoScrollPosition = 
    new Point(0, tableLayoutPanel.VerticalScroll.Maximum);

もちろん、あなたは持っている必要がありますtableLayoutPanel.AutoScroll = true

ところで、煩わしい水平スクロールバーを避けるために、テーブルレイアウトパネルに右のパディングを追加する必要があります。

tableLayoutPanel.Padding = 
     new Padding(0, 0, SystemInformation.VerticalScrollBarWidth, 0);

AutoSizetableLayoutPanelではUPDATEを無効にする必要があります。それ以外の場合、スクロールは表示されません-代わりにテーブルレイアウトパネルが大きくなります。

于 2012-12-24T10:16:43.540 に答える