1

userControl (DockStyle.Fill) を埋める TableLayoutPanel に問題があります。このコントロールのサイズが変更されているときに、すべてのセルのサイズを変更する必要がありますが、最後の行と最後の列のみがサイズを変更する必要があります (したがって、tableLayoutPanel 全体がコントロールを埋めます)。Bounds プロパティを使用して、このコントローラーのサイズを変更します。

次のコードを書いたとしましょう:

// creating tableLayoutPanel:

private void createTableLayoutPanel(int count)
{
    tableLayoutPanel = new TableLayoutPanel();
    tableLayoutPanel.MouseClick += new MouseEventHandler(this.observe_MouseClick);
    tableLayoutPanel.AutoSize = true;
    tableLayoutPanel.ColumnCount = 3;
    tableLayoutPanel.RowCount = count;
    tableLayoutPanel.Dock = DockStyle.Fill;
    tableLayoutPanel.AutoSize = true;
    this.Controls.Add(tableLayoutPanel);
}

// resizing:

private void OnMouseWheel(MouseEventArgs e)
{
    this.Bounds = new Rectangle(this.Location.X, this.Location.Y, (int)(this.Width*newScale),(int)(this.Height*newScale));
}

助けてくれてありがとう。

4

1 に答える 1

4

行ごとに、 と を使用してTableLayoutPanelRowStylesコレクションに項目を追加SizeType = SizeType.PercentしますHeight = 100 / tableLayoutPanel.RowCount。コレクションでも同じことを行いColumnStylesます。

于 2010-08-10T18:32:48.280 に答える