C# 4.0 C#从其他方法读取动态创建的文本框的文本
如果我像这样动态创建一个文本框:C# 4.0 C#从其他方法读取动态创建的文本框的文本,c#-4.0,C# 4.0,如果我像这样动态创建一个文本框: 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**=="som
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;
}
问题是我在按钮处理程序中找不到textbox控件
提前感谢您必须声明texbox不在方法中,它必须是全局的。然后您可以访问textbox对象
TextBox tb;
private void Form1_Load(object sender, EventArgs e)
{
tb=new TextBox();
...
this.Controls.Add(tb);
}
将
文本框
声明为您的表单
类私有成员。您可以迭代可枚举对象的控件
集合,例如选项卡控件
,假设这是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
}
}
}
}
你不能直接调用
.FindControl(..)
来查找所讨论的文本框吗?啊,答案几乎描述了一个.Find(..)
方法,可能是针对一个可枚举的容器,比如TabControl
。不确定FindControl是否只适用于ASP.NET?是的,关于它是ASP.NET/web还是Windows窗体,问题还没有定论。。。是-.FindControl()
特定于ASP.NET
private TextBox tb = new TextBox();
private void Form1_Load(object sender, EventArgs e)
{
this.Controls.Add(tb);
}