我正在运行时创建多个文本框。问题是我似乎无法在运行时渲染后单独更新它们的值。 textbox.text总是最终在GUI中显示其初始文本(“Hello”)而不是我想要在更改它后显示的内容(“World”):
public Dictionary<int,TextBox> txtbx123dictionary = new Dictionary<int,TextBox>
public void LoadParameters()
{
DataSet ds = new DataSet();
ds = GetParameters();
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
paramtxtbx = new System.Windows.Forms.TextBox();
txtbx123dictionary.Add(i, paramtxtbx);
txtbx123dictionary.ElementAt(i).Value.Text = "Hello"
txtbx123dictionary.ElementAt(i).Value.Name = "TextBox" + i.ToString();
txtbx123dictionary.ElementAt(i).Value.Location = new System.Drawing.Point(320, (i * 25));
txtbx123dictionary.ElementAt(i).Value.Size = new System.Drawing.Size(150, 20);
txtbx123dictionary.ElementAt(i).Value.Visible = true;
panel123.Controls.Add(paramdict.ElementAt(i).Value);
//panel123.Add(i, paramtxtbx);
}
}
public void function()
{
LoadParameters();
for (int i = 0; i < txtbx123dictionary.Count(); i++)
{
txtbx123dictionary.ElementAt(i).Value.Text = "World";
txtbx123dictionary.ElementAt(i).Value.Update();
panel123.Update();
}
}
例如,我需要将textbox.text更改为“World”,但在运行代码时,文本框会一直显示“Hello”。 帮助将不胜感激。感谢。
答案 0 :(得分:0)
txtbx123dictionary.ElementAt(i)
与txtbx123dictionary[i]
ElementAt(i)
是来自IEnumerable<T>
您可以通过键TextBox
将i
添加到字典中,然后通过索引i
尝试获取。