2014-06-29 60 views
0

我有一個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」它不起作用。

回答

2

您不能以這種方式重新使用控件。每次創建一個控件(例如,new Label(…))時,都會創建一個只能在父窗口(或其他容器控件)中存在一次的唯一對象。如果您更改其屬性(包括將其放置在另一個容器中),它將更新(包括移動)該控件。

要放置兩個控件實例,需要創建該控件的兩個實例。