如何从面板动态添加控件到 table 布局面板
how to add controls dynamically to table layout panel from panel
我已将所有控件放在一个 panel.During 中,运行 我想将控件添加到 table 布局面板。为此,我编写了以下代码。
void arrangeTableLayout()
{
int rowcount = 1;
tblPanel.ColumnCount=2;
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
for (int i = 0; i < panel.Controls.Count; i++)
{
if (panel.Controls[i].Visible)
{
tblPanel.Controls.Add(panel.Controls[i], 0, rowcount);
tblPanel.Controls.Add(panel.Controls[i + 1], 1, rowcount);
tblPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
i++;
rowcount++;
}
}
}
在控件数组中,控件是我需要的。但是上面的代码只在一列中添加了标签。
谁能告诉我如何将 windows 表单控件动态添加到 table 布局面板。
您可以使用此代码来执行此操作。
tblPanel.Controls.Add(new Label() { Text = "Type:", Anchor = AnchorStyles.Left, AutoSize = true }, 0, 0);
tblPanel.Controls.Add(new ComboBox() { Dock = DockStyle.Fill }, 0, 1);
您不需要定义行数和列数,它们会自动添加。
以组合框为例。将其替换为您的控件
它对我有用。
void arrangeTableLayout()
{
int rowcount = 1;
tblPanel.ColumnCount=2;
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
for (int i = 0; i < panel.Controls.Count; i++)
{
if (panel.Controls[i].Visible)
{
var c1 = panel.Controls[i];
var c2 = GetNextControl(panel.Controls[i], true);
panel.Controls.Remove(c1);
i--;
panel.Controls.Remove(c2);
tblPanel.Controls.Add(c1, 0, rowcount);
tblPanel.Controls.Add(c2, 1, rowcount);
tblPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
rowcount++;
}
}
}
我已将所有控件放在一个 panel.During 中,运行 我想将控件添加到 table 布局面板。为此,我编写了以下代码。
void arrangeTableLayout()
{
int rowcount = 1;
tblPanel.ColumnCount=2;
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
for (int i = 0; i < panel.Controls.Count; i++)
{
if (panel.Controls[i].Visible)
{
tblPanel.Controls.Add(panel.Controls[i], 0, rowcount);
tblPanel.Controls.Add(panel.Controls[i + 1], 1, rowcount);
tblPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
i++;
rowcount++;
}
}
}
在控件数组中,控件是我需要的。但是上面的代码只在一列中添加了标签。
谁能告诉我如何将 windows 表单控件动态添加到 table 布局面板。
您可以使用此代码来执行此操作。
tblPanel.Controls.Add(new Label() { Text = "Type:", Anchor = AnchorStyles.Left, AutoSize = true }, 0, 0);
tblPanel.Controls.Add(new ComboBox() { Dock = DockStyle.Fill }, 0, 1);
您不需要定义行数和列数,它们会自动添加。
以组合框为例。将其替换为您的控件
它对我有用。
void arrangeTableLayout()
{
int rowcount = 1;
tblPanel.ColumnCount=2;
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
tblPanel.ColumnStyles.Add(new System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50F));
for (int i = 0; i < panel.Controls.Count; i++)
{
if (panel.Controls[i].Visible)
{
var c1 = panel.Controls[i];
var c2 = GetNextControl(panel.Controls[i], true);
panel.Controls.Remove(c1);
i--;
panel.Controls.Remove(c2);
tblPanel.Controls.Add(c1, 0, rowcount);
tblPanel.Controls.Add(c2, 1, rowcount);
tblPanel.RowStyles.Add(new System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 40F));
rowcount++;
}
}
}