问题描述
为什么使用下面的语句循环生成之后,只显示最后一个pannel?//定义后面的Pannel右移的值intleft=0;for(inti=0;i<7;i++){this.panel1.BackColor=System.Drawing.SystemColors.AppWorkspace;this.panel1.Location=newSystem.Drawing.Point(left,64);this.panel1.Name="panel1";this.panel1.Size=newSystem.Drawing.Size(698,1);this.panel1.TabIndex=10;left=left+50;}
解决方案
解决方案二:
??
解决方案三:
你又不是NEW出来的PANEL,把一个移来移去```
解决方案四:
youshoulddolikethis://定义后面的Pannel右移的值intleft=0;for(inti=0;i<7;i++){PaneltmpPanel=newPanel();this.tmpPanel.BackColor=System.Drawing.SystemColors.AppWorkspace;this.tmpPanel.Location=newSystem.Drawing.Point(left,64);this.tmpPanel.Name="panel"+i.ToString();this.tmpPanel.Size=newSystem.Drawing.Size(698,1);this.tmpPanel.TabIndex=10;left=left+50;}
解决方案五:
this不可以这么使用,去掉了吧,this是对静态添加的集合而言intleft=0;for(inti=0;i<7;i++){Panelpanel=newPanel();panel.Location=newPoint(10,10+left);panel.Name="panel"+i;panel.Size=newSize(100,10);panel.TabIndex=i+10;panel.Parent=this;//这个顶重要的,决定你可否成功添加啊,panel也要有一个父容器啊,要//不他放在什么上面呢panel.BorderStyle=BorderStyle.Fixed3D;left+=30;}