Создать TableLayoutPanel программно в C#
Я имею TabControl
который содержит один TabPage
и другие TabPages добавляются динамически, по событию.
Первая вкладка содержит TableLayoutPanel
, поэтому мне интересно, есть ли шанс добавить новый TableLayoutPanel
каждому новому созданному TabPage
, который такой же, как первый TableLayoutPanel
но пусто?
Или, другими словами, я мог бы создать TableLayoutPanel
программно?
1 ответ
Вы можете создать любой элемент управления программно, в том числе TableLayoutPanel
, На самом деле, когда вы используете дизайнерские элементы управления также создаются программно - код генерируется Visual Studio.
Просто создайте новый TableLayoutPanel
контролировать и устанавливать все его свойства (строки, столбцы и т. д.). Затем добавьте этот элемент управления в Controls
свойство новой вкладки:
TabPage page = new TabPage("Another page");
page.Controls.Add(new TableLayoutPanel { Dock = DockStyle.Fill});
tabControl1.TabPages.Add(page);
Другой вариант для вас - создание пользовательского элемента управления с уже настроенным TableLayoutPanel
, В этом случае вам нужно будет только создать новый пользовательский элемент управления и добавить его на вкладку.
Также вы можете создавать собственные TableLayoutPanel
с указанными строками, столбцами и другими настройками. Например, этот элемент управления будет иметь две строки с предопределенной высотой 25% и 75%.
public class CustomTableLayoutPanel : TableLayoutPanel
{
public CustomTableLayoutPanel()
{
RowStyles.Clear();
RowStyles.Add(new RowStyle(SizeType.Percent, 0.25F));
RowStyles.Add(new RowStyle(SizeType.Percent, 0.75F));
BackColor = Color.Beige;
}
}