C#遍历窗体所有指定控件,解决⼀些控件在group或tabpage中遍历不到的问题
要遍历窗体内的指定控件,如果窗体内的控件(只有向button、label、TextBox这样的控件)没有其他容器,则只要下⾯代码即可遍历所有单个控件:
foreach (Control control in this.Controls)
{
if(control is TextBox )
{
}
if(control is button)
{
}
。。。。。。
}
如果窗体含有其他容器,或容器套容器的情况,可以使⽤递归遍历;如图我想遍历窗体中的TextBox、ComboBox、RichTextBox、CheckBox、RadioButton等并把它们保存于Dictionary字典中(保存的是这个控件和该控件对应的值,⽐如textbobox这个控件和它的text值,RichTextBox这个控件和它的text值),代码实现如下:
Dictionary<Control, object> originalDic = new Dictionary<Control, object>(); foreach (Control control in this.tabGroup.TabPages)
{
SaveControlsToDic(control);//tabGroup是TabControl控件
}
private void SaveControlsToDic(Control control)
{
if (control is TextBox || control is ComboBox || control is RichTextBox)        {
originalDic.Add(control, control.Text);
}
else if (control is CheckBox)
{
originalDic.Add(control, ((CheckBox)control).Checked);
}
else if (control is RadioButton)
{
originalDic.Add(control, ((RadioButton)control).Checked);
}
else if (control is DateTimePicker)
{
originalDic.Add(control, (control as DateTimePicker).Value);
}
else if (control is TabPage)
htmlradio的text出不来
{
foreach (Control control1 in (control as TabPage).Controls)
{
SaveControlsToDic(control1);
}
}
else if (control is GroupBox)
{
foreach (Control control1 in (control as GroupBox).Controls)
{
SaveControlsToDic(control1);
}
}
}
这样即可遍历我需要的控件。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。