重用创建的控件

时间:2014-06-29 10:38:14

标签: c# winforms

我有一个包含2列的TableLayoutPanel。 (第一列将包含字段名称,另一列将包含字段值)

Label lbl = new Label {
    AutoSize = false,
    Dock = DockStyle.Fill,
    TextAlign = ContentAlignment.MiddleLeft
};

TextBox txt = new TextBox{
    Dock = DockStyle.Fill,
    ReadOnly = true,
};

所以我创建了这个控件,我想要做的是重用它们以便将数据插入到表中。

lbl.Text = "field1";
txt.Text = "value1";
tableLayoutPanel.Controls.Add(lbl,0,0)
tableLayoutPanel.Controls.Add(txt,1,0)

lbl.Text = "field2";
txt.Text = "value2";
tableLayoutPanel.Controls.Add(lbl,0,1)
tableLayoutPanel.Controls.Add(txt,1,1)

这不起作用。它只会添加field2和value2。即使我设置了lbl.name =" smt"然后lbl.name =" smtElse"它没有用。

1 个答案:

答案 0 :(得分:2)

您不能以这种方式重用控件。每次创建一个控件(例如new Label(…))时,它创建一个唯一的对象,该对象只能在父窗口(或其他容器控件)中存在一次。如果您更改其属性(包括将其放置在另一个容器中),它将更新(包括移动)该控件。

要放置一个控件的两个实例,您需要创建该控件的两个实例。