2010-08-10 1 views
1

У меня проблема с TableLayoutPanel, которая заполняет userControl (DockStyle.Fill). Я сталкиваюсь с проблемой, когда этот элемент управления изменяется, мне нужны все ячейки, чтобы изменить их размер, но только размер последней строки и последнего столбца меняет размер (так что вся таблицаLayoutPanel заполняет элемент управления). Я изменяю размер этого контроллера с помощью свойства Bounds.Масштабирование WinForms TableLayoutPanel

скажем, я написал следующий код:

// 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

Для каждой строки добавьте товар в TableLayoutPanel в коллекцию RowStyles с SizeType = SizeType.Percent и Height = 100/tableLayoutPanel.RowCount. Сделайте то же самое с коллекцией ColumnStyles.