我已经在SQL表格的FlowlayoutPanel中动态添加了文本框,如下所示
string query = "SELECT* FROM tblA";
using (SqlConnection conn = new SqlConnection("Data Source=.;Initial Catalog=DummyData;Integrated Security=True"))
{
conn.Open();
using (SqlCommand cmd = new SqlCommand(query, conn))
{
SqlDataReader reader = cmd.ExecuteReader();
while (reader.Read())
{
Label objLbl = new Label();
TextBox objText = new TextBox();
objLbl.Text = reader["A_Name"].ToString();
objText.Name = "txt"+reader["ID"].ToString();
pnlFlow.Controls.Add(objLbl);
pnlFlow.Controls.Add(objText);
}
}
}
工作正常。现在我遇到的问题是当用户在这些文本框中输入一些数据时。如何获取该数据以进行进一步处理?
答案 0 :(得分:1)
您可以通过多种方式执行此操作,具体取决于您需要获取值的方式和时间。
如果您需要一次阅读,请执行以下操作:
foreach(Control c in pnlFlow.Controls)
{
if c.Name.StartsWith("txt")
// process the text box
// you might want to use a more distinct naming pattern to be safe
...
}
如果您需要在不同时间单独处理它们,可以在Controls集合中按名称引用它们:
string textBoxName = "txt12345";
string valueText = ((TextBox)pnlFlow.Controls[textBoxName]).Text;
当然,两个片段都需要更好的错误处理,但我会留给你。