///


    /// 遍历窗体子控件和孙控件,将所有控件置于allCtrls
    ///

    private static Queue allCtrls = new Queue();
    private static void CheckAllCtrls(Control item)
    {
    for (int i = 0; i < item.Controls.Count; i++)
    {
    if (item.Controls[i].HasChildren)
    {
    CheckAllCtrls(item.Controls[i]);
    }
    else
    {
    allCtrls.Enqueue(item.Controls[i]);
    }
    }
    }

    然后一定注意在窗体的构造函数中写!!!
    public SysSetting()
    {
    InitializeComponent();
    CheckAllCtrls(this);//表示生成子窗体的时候已经遍历窗体的所有控件和子控件
    }

    使用举例:想要找到设置窗体中的文本框并保存其中的数据

    public void saveSet(string filePath)
    {
    //string newset = “#系统设置”;
    StreamWriter sw = new StreamWriter(filePath,false);
    sw.Write(“”);
    string newset = “#系统设置”;
    foreach (Control c in allCtrls)
    {
    if ((c is TextBox) && (c.Text != null))
    {
    newset += “\r\n” + c.Name + “=” + c.Text;
    //File.AppendText(newset);
    }
    if (c is CheckBox && (((CheckBox)c).Checked == true))
    {
    newset += “\r\n” + c.Name + “=” + “1”;
    // File.AppendText(newset);
    }
    if (c is CheckBox && (((CheckBox)c).Checked == false))
    {
    newset += “\r\n” + c.Name + “=” + “0”;
    //File.AppendText(newset);
    }
    //File.AppendText(newset);
    }
    sw.Write(newset);
    sw.Flush();
    sw.Close();
    }