如果我像这样动态创建了一个文本框:
private void Form1_Load(object sender, EventArgs e)
{
TextBox tb=new TextBox();
...
this.Controls.Add(tb);
}
如果我的表单上有一个按钮,我想从按钮单击事件处理程序中读取文本框的文本
private void button1_Click(object sender, EventArgs e)
{
if(**tb.text**=="something") do something;
}
问题是我无法在按钮处理程序中找到文本框控件。
提前谢谢
答案 0 :(得分:1)
你必须从方法中声明文本框,它必须是全局的。然后你可以到达文本框对象
TextBox tb;
private void Form1_Load(object sender, EventArgs e)
{
tb=new TextBox();
...
this.Controls.Add(tb);
}
答案 1 :(得分:0)
将TextBox
声明为您的Form
班级私人会员。
答案 2 :(得分:0)
您可以迭代Controls
可枚举对象的集合,例如TabControl
,假设这是一个Windows窗体。这里有一些来自我正在研究的项目,适用于TextBox
:
foreach (TabPage t in tcTabs.TabPages)
{
foreach (Control c in t.Controls)
{
MessageBox.Show(c.Name); // Just shows the control's name.
if (c is TextBox) // Is this a textbox?
{
if (c.Name == "txtOne") // Does it have a particular name?
{
TextBox tb = (TextBox) c; // Cast the Control as a TextBox
tb.Text = "test"; // Then you can access the TextBox control's properties
}
}
}
}
答案 3 :(得分:0)
private TextBox tb = new TextBox();
private void Form1_Load(object sender, EventArgs e)
{
this.Controls.Add(tb);
}