以编程方式创建textBox并引用它

时间:2014-04-11 15:52:52

标签: c#

我有一个多功能应用,所以我创建了一个带有for循环功能的文本框。

TextBox logtextbox = new TextBox();
logtextbox.Name = "textBox1_" + stringval[0]; //string.Format("logThread{0}", i);

我想在线程中的for循环函数之外使用此文本框。该线程已经具有stringval值。我需要知道一种引用它的方法,以便我可以添加文本。

4 个答案:

答案 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";
}