重用已创建的控件

本文关键字:控件 创建 | 更新日期: 2023-09-27 18:10:52

我有一个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"它也不起作用

重用已创建的控件

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

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