我想写一个递归函数,参数是tabcontrol,函数功能是,遍历所有tabpage中的控件,如果tabpage本身又是一个tabcontrol的话,那就递归调用自己,如果tabpage不是tabcontrol的话,就遍历tabpage的所有控件,如果是txtbox控件的话,就给.text = "",如果是combobox的话,就.selectedindex = -1,如果是radio的话,就.check = fals,。大概就是这样的意思。这样的函数能写吗?
我觉得应该是个挺常见的函数,但是在网上没搜到。
大家帮忙看看。

解决方案 »

  1.   


    foreach (TabPage page in tabControl1.TabPages)
                {
                    foreach (Control control in page.Controls)
                    {
                         if (control is TextBox)
                        {
                            ((TextBox)control) = "";
                        }
                        if (control is ComboBox)
                        {
                            ((ComboBox)control).SelectedIndex = -1;
                        }
                     }
                }
      

  2.   

     private List<string> ControlList;
            private void ShowControl()
            {
                ControlList = new List<string>();
                this.AddControl(this.tabControl1);
                for (int i = 0; i < ControlList.Count; i++)
                {
                    MessageBox.Show(ControlList[i]);
                }
            }
            private void AddControl(TabControl tab)
            {
                foreach (TabPage page in tab.TabPages)
                {
                    foreach(Control c in page.Controls)
                    {
                        if (c is TabControl)
                        {
                            this.AddControl(c as TabControl);
                        }
                        else
                        {
                            this.ControlList.Add(c.Name.ToString());
                        }
                    }
                }
            }
      

  3.   


     private List<string> ControlList;
            private void ShowControl()
            {
                ControlList = new List<string>();
                this.AddControl(this.tabControl1);
                for (int i = 0; i < ControlList.Count; i++)
                {
                    MessageBox.Show(ControlList[i]);
                }
            }
            private void AddControl(TabControl tab)
            {
                foreach (TabPage page in tab.TabPages)
                {
                    foreach(Control c in page.Controls)
                    {
                        if (c is TabControl)
                        {
                            this.AddControl(c as TabControl);
                        }
                        else
                        {
                            this.ControlList.Add(c.Name.ToString());
                        }
                    }
                }
            }
      

  4.   

    为什么我们公司用的tabcontrol 没有 tabpage ??我就郁闷,选中项是 tabpanel 但是 用 panel 类遍历 也不对,,怎么办??怎么办??