C# 遍历窗体所有指定控件,解决一些控件在group或tabpage中遍历不到的问题

c# 专栏收录该内容
8 篇文章 0 订阅

要遍历窗体内的指定控件,如果窗体内的控件(只有向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)
        {
            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);
            }
        }
 }

这样即可遍历我需要的控件。

  • 2
    点赞
  • 0
    评论
  • 6
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值