c#如何获取动态添加的控件名

2024-11-28 23:11:43
推荐回答(5个)
回答1:

private void button1_Click(object sender, EventArgs e)
{
Control[] controls = tabControl1.TabPages[tabControl1.SelectedIndex].Controls;//获得当前选中的选项卡
WebBrowser currentBrowser=null;
foreach (Control ctl in controls)//找到当前选项卡里的WebBrowser
{
if (ctl.GetType() = typeof(WebBrowser))
{
currentBrowser = ctl as WebBrowser;
}

}

currentBrowser.Navigate(this.textBox1.Text);//导航你要的URL
}

楼上的方法虽然行的通,但对控件ID依赖过大,ID变更(或者说生成ID的方法变更),代码就得改;

回答2:

for (int i=0;i foreach (control ctrl in this.Controls){
if (ctrl.Name==("label"+i.toString())){
//找到你想要的label了
Label lbl=ctrl as Label;
//随便对lbl做什么吧,反正都是你要的了。
}
}
}
////////就可以运行了,谢谢你

我都回答过这些问题了……

回答3:

具体代码如下:

foreach(Control c in Controls)
{
  temp=c as TextBox;
 if(temp!=null)
{
messagebox.show(temp.Name)
}
}

用is效率高一些,毕竟用as是类型转换。

回答4:

(容器控件ID.FindControl("控件ID") as 控件类型).navigate(url)

回答5:

private void button1_Click(object sender, EventArgs e)
{
Control[] controls = tabControl1.TabPages[tabControl1.SelectedIndex].Controls.Find("webBrowser" + (tabControl1.TabCount + 1).ToString(),false);

if (controls.Length > 0)
((WebBrowser)controls[0]).Navigate(this.textBox1.Text);
}