我有Form
,其中有两个控件,Button
和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");
}
}
}
}
答案 0 :(得分: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);
}
答案 1 :(得分: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);
}