急!!!为什么遍历不到动态添加的控件? foreach(Control ctrl in groupBox1.Controls){if (ctrl is Buttons){ //}} 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把 this.groupBox1.Controls.Add(Button1); Button1.Name=i.ToString();换成 Button1.Name=i.ToString(); this.groupBox1.Controls.Add(Button1);试试 没问题private void button1_Click(object sender, System.EventArgs e) { for(int i=0;i<10;i++) { System.Windows.Forms.Button Button1=new Button(); this.groupBox1.Controls.Add(Button1); Button1.Name=i.ToString(); } int aa=groupBox1.Controls.Count; MessageBox.Show(aa.ToString()); }弹出对话框显示10 private void button2_Click(object sender, System.EventArgs e) { foreach(System.Windows.Forms.Button bt in groupBox1.Controls) { int aa=groupBox1.Controls.Count;//aa=0? MessageBox.Show(aa.ToString()); } }弹出对话框也显示10 我是在一个Form1中用如下程序在groupBox1中动态添加10个按钮for(int i=0;i<10;i++){ System.Windows.Forms.Button Button1=new Button(); this.groupBox1.Controls.Add(Button1); Button1.Name=i.ToString}在Form2中遍历的public void SetBackColor(System.Windows.Forms.Form form,string ctrlName,string btName,System.Drawing.Color BackColor,System.Drawing.Color ForeColor){ foreach(System.Windows.Forms.Control ctrl in form.Controls) { if(ctrl.Name==ctrlName) { int aa=ctrl.Controls.Count; foreach(System.Windows.Forms.Button bt in ctrl.Controls) { if(bt.Name == btName) { bt.BackColor=BackColor; bt.ForeColor=ForeColor; return; } } } }}此时aa=0 我监视了一下,到if(ctrl.Name==ctrlName)都正常,能根据参数传递进来的名称找到相应的控件,因为是动态创建的按钮,所以ctrl.Controls.Count总显示为零,那么下面的遍历也就无法执行了,请高手解决这个问题。 你的GROUP有没有添加到FORM中呀? ctrl.Controls.Count 当然为0 啊 c# 正则表达式遇到 奇怪的问题 winform嵌入exe问题 ComboBox使用AutoCompleteCustomSource,出现异常:尝试读取或写入受保护的内存 Devexpress中的treeview如何使用 c#(winform)中有没有这样的控件? 报表打印问题,高人指点啊 求助啦。。。winform怎么访问需要登陆的网络页面阿 C#调用DLL的问题 w3wp.exe这个进程老是会自动释放,因为我要用到它来调试asp.net程序,不想它自动它自动释放,有咩办法??? 紧急求救!!! 在try{}中赋值为何不算? 请问如何得到以下情况的数组的元素个数?
this.groupBox1.Controls.Add(Button1);
Button1.Name=i.ToString();
换成
Button1.Name=i.ToString();
this.groupBox1.Controls.Add(Button1);
试试
private void button1_Click(object sender, System.EventArgs e)
{
for(int i=0;i<10;i++)
{
System.Windows.Forms.Button Button1=new Button();
this.groupBox1.Controls.Add(Button1);
Button1.Name=i.ToString();
}
int aa=groupBox1.Controls.Count;
MessageBox.Show(aa.ToString());
}
弹出对话框显示10
{
foreach(System.Windows.Forms.Button bt in groupBox1.Controls)
{
int aa=groupBox1.Controls.Count;//aa=0?
MessageBox.Show(aa.ToString());
} }
弹出对话框也显示10
用如下程序在groupBox1中动态添加10个按钮
for(int i=0;i<10;i++)
{
System.Windows.Forms.Button Button1=new Button();
this.groupBox1.Controls.Add(Button1);
Button1.Name=i.ToString
}
在Form2中遍历的
public void SetBackColor(System.Windows.Forms.Form form,string ctrlName,string btName,System.Drawing.Color BackColor,System.Drawing.Color ForeColor)
{
foreach(System.Windows.Forms.Control ctrl in form.Controls)
{
if(ctrl.Name==ctrlName)
{
int aa=ctrl.Controls.Count;
foreach(System.Windows.Forms.Button bt in ctrl.Controls)
{
if(bt.Name == btName)
{
bt.BackColor=BackColor;
bt.ForeColor=ForeColor;
return;
}
}
}
}
}
此时aa=0
if(ctrl.Name==ctrlName)
都正常,能根据参数传递进来的名称找到相应的控件,因为是动态创建的按钮,所以ctrl.Controls.Count总显示为零,那么下面的遍历也就无法执行了,请高手解决这个问题。