我有一个多功能应用,所以我创建了一个带有for循环功能的文本框。
TextBox logtextbox = new TextBox();
logtextbox.Name = "textBox1_" + stringval[0]; //string.Format("logThread{0}", i);
我想在线程中的for循环函数之外使用此文本框。该线程已经具有stringval值。我需要知道一种引用它的方法,以便我可以添加文本。
答案 0 :(得分:1)
所以你有类似的东西吗?
for(int i = 0; i<10; i++)
{
TextBox logtextbox = new TextBox();
logtextbox.Name = "textBox1_" + stringval[0];
}
将创建的TextBox存储在集合中。
List<TextBox> CreatedTextBoxList = new List<TextBox>();
for(int i = 0; i<10; i++)
{
TextBox logtextbox = new TextBox();
logtextbox.Name = "textBox1_" + stringval[0];
CreatedTextBoxList.Add(logtextbox);
}
然后你可以遍历CreatedTextBoxList
foreach(TextBox tb in CreatedTextBoxList)
{
//do something with tb
}
或使用Linq获取特定的TextBox。
TextBox tb=CreatedTextBoxList.Where(x => x.Name=="NAMEOFTEXTBOXHERE").FirstOrDefault();
tb.Text="Hello, world!";
答案 1 :(得分:0)
for(int i = 0; i<10; i++)
{
TextBox logtextbox = new TextBox();
logtextbox.Name = "textBox1_" + stringval[0];
this.Controls.Add(logtextbox);
}
TextBox mytextbox = ((TextBox) this.Controls.Find("logtextbox",true)[0]);
EDIT
mytextbox.text = "blah";
答案 2 :(得分:0)
这样的东西?
System.Web.UI.WebControls.TextBox txtBasicTextBox = new System.Web.UI.WebControls.TextBox();
txtBasicTextBox.ID = "txtBasicTextBox";
System.Web.UI.WebControls.TextBox txtBasicTextBox = (System.Web.UI.WebControls.TextBox)form1.FindControl("txtBasicTextBox");
答案 3 :(得分:0)
我将假设这是WinForms
var stringval = new List<string>{"1", "2", "3", "4", "5", "6", "7", "8", "9", "10"};
for (int i = 0; i < 10; i++)
{
var textBox = new TextBox();
textBox.Name = "textBox1_" + stringval[i];
textBox.Text = "YOUR OLD VALUE";
Controls.Add(textBox);
}
var searchTextBox = Controls["textBox1_" + stringval[1]] as TextBox;
if (searchTextBox != null)
{
searchTextBox.Text = "YOUR NEW VALUE";
}