0

我有 a Form,上面有两个控件, aButton和 a TextBox
这些控件是在运行时创建的。

当我单击 时Button,我想对该TextBox.Text属性进行一些操作。
但是,使用此代码我不能:

 private void Form1_Load(object sender, EventArgs e)
 {
     TextBox txb = new TextBox();
     this.Controls.Add(txb);
     Button btn = new Button();
     this.Controls.Add(btn);
     btn.Click += new EventHandler(btn_Click);
 }

在这里我试图找到它:

public void btn_Click(object sender, EventArgs e)
{
    foreach (var item in this.Controls)
    {
        if (item is TextBox)
        {
            if (((TextBox)item).Name=="txb")
            {
                MessageBox.Show("xxx");
            }
        }
    }
}
4

2 回答 2

0

我会保存对您的TextBox.

TextBox txb;
private void Form1_Load(object sender, EventArgs e)
 {
     txb = new TextBox();
     this.Controls.Add(txb);
     Button btn = new Button();
     this.Controls.Add(btn);
     btn.Click += new EventHandler(btn_Click);
 }
于 2012-09-14T13:21:07.460 回答
0

您没有名称为“txb”的文本框。所以,这个表达式永远是假的:if(((TextBox)item).Name=="txb")

试试这个代码:

private void Form1_Load(object sender, EventArgs e)
 {
     TextBox txb = new TextBox();
     txb.Name = "txb";
     this.Controls.Add(txb);
     Button btn = new Button();
     this.Controls.Add(btn);
     btn.Click += new EventHandler(btn_Click);
 }
于 2012-09-14T13:15:19.580 回答