c# 遍历控件
我有很多combobox控件分别在panel1,groupbox1,panel2,groupbox2,form1,tabpage1等当中如何一次性遍历到所有的控件,并对他...
我有很多combobox控件
分别在panel1,groupbox1,panel2,groupbox2,form1,tabpage1等当中
如何一次性遍历到所有的控件,并对他们的Combox.SelectedIndex 赋值? 展开
分别在panel1,groupbox1,panel2,groupbox2,form1,tabpage1等当中
如何一次性遍历到所有的控件,并对他们的Combox.SelectedIndex 赋值? 展开
5个回答
展开全部
foreach (Control control in this.Controls)//遍历本窗体中所有的ComboBox控件
{
if (control.GetType().ToString() == "System.Windows.Forms.ComboBox")
{
(control as ComboBox).SelectedIndex = 1;
}
}
追问
你的方法只能对直接隶属于this的控件进行操作,但比如combobox是直接属于panel1的,panel1属于this的,试过之后这种方法是无效的,有没有改进的方法?
追答
递归遍历,调用“GetControls(this.Controls);”
public void GetControls(Control.ControlCollection ctc)
{
foreach (Control con in ctc)
{
if (!con.HasChildren)
{
if (con.GetType().ToString() == "System.Windows.Forms.ComboBox")
{
(con as ComboBox).Text = "123";
continue;
}
}
GetControls(con.Controls);
}
}
展开全部
调用SetComboBox(this);
private void SetComboBox(Control control)
{
foreach (Control control in this.Controls)//遍历本窗体中所有的ComboBox控件
{
ComboBox cmbx = control as ComboBox;
if (cmbx != null)
{
cmbx.SelectedIndex = 1;
}
SetComboBox(control);
}
}
private void SetComboBox(Control control)
{
foreach (Control control in this.Controls)//遍历本窗体中所有的ComboBox控件
{
ComboBox cmbx = control as ComboBox;
if (cmbx != null)
{
cmbx.SelectedIndex = 1;
}
SetComboBox(control);
}
}
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-11-19
展开全部
举个例子,使用panel1.controls,获取每个控件,然后一点一点的取出来判断对比,确定后进行赋值操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
这种情况用windows编程,就是找句柄,发消息的方式
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
一楼的正解啊!
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询