用程序创建一个文本框并引用它
本文关键字:文本 引用 一个 创建 程序 | 更新日期: 2023-09-27 17:57:59
我有一个多功能应用程序,所以我用for循环函数创建了一个文本框。
TextBox logtextbox = new TextBox();
logtextbox.Name = "textBox1_" + stringval[0]; //string.Format("logThread{0}", i);
我想在线程中的for循环函数之外使用这个文本框。线程已经有了stringval值。我需要知道一种引用它的方法,这样我就可以向它添加文本。
你有这样的东西吗?
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!";
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";
类似的东西?
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");
我假设这是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";
}