先看代码
Control c;
                for (int i = 1; i < this.panel2.Controls.Count; i++)
                {
                    c = this.panel2.Controls[i];//1
                    c.Controls[3].Visible = true;
                    c.Controls[2].Visible = true;
                    c.Controls[7].Visible = true;
                    c.Controls[8].Visible = true;
                    c.Controls[6].Visible = true;//2
c是一个自定义的控件,里面组合了若干个类似label、imagebox之类的控件,我想控制它们的可见性,如上面代码所示,
问题来了,在代码执行到1的时候c.Controls[3]对应为A控件,c.Controls[2]对应到B控件,等代码执行完到2时,再看发现这两个对应的控件又反了过来,即c.Controls[3]对应为B控件,c.Controls[2]对应到A控件.....之类的问题还有,这里举个例子,为什么会这样,我应该怎么解决??

解决方案 »

  1.   

    for (int i = 1; i < this.panel2.Controls.Count; i++)
                    {
                        this.panel2.Controls[i]].Visible = true;                }
      

  2.   

    自定义控件里的子控件设置好TAB建顺序..按楼上的用名字来控制!
      

  3.   

    LS两位所说的用名字来控制具体是指的?是说用control.Name 吗?
      

  4.   

    加一个判断if(c.Controls[i].Name == "控件的名字")
    {
       //设置可见性
    }