0

aとaFormの2つのコントロールがあるにあります。 これらのコントロールは実行時に作成されます。ButtonTextBox

をクリックする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

名前が「txb」のテキストボックスがありません。したがって、この式は常にfalseになります。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 に答える
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 に答える