继承Form后的奇怪问题
还望高手指点指点!!!先谢过了,我的环境是vs.net   2003 
 1   新建项目,拖了个picturebox控件(fill);然后拖了个timer控件进去,设定每秒触发一个绘图函数 
 2   加入一个新的窗体   然后把继承的System.Windows.Forms.Form改为Form1 
 3   编译后出现了奇怪的问题。程序和Form2的设计器同时开始了绘图,更奇怪的是关掉程序后,Form2的设计器还在不停的绘图。 
 各位可以花三四分钟在自己的环境下试下,讲讲原因来着,不甚感激。看到如此神奇的场景,我算是彻底见世面了。。。。   
 Form1的部分代码:   
 private   int   count   =   0   ;  		 
 protected   override   void   OnPaint(System.Windows.Forms.PaintEventArgs   e) 
 { 
             Graphics   g   =   pictureBox1.CreateGraphics(); 
             Pen   pen   =   new   Pen(Color.Red,5); 
             if   (   count   ==   10   ) 
             { 
 	count   =   0; 
 	g.Clear(BackColor); 
             } 
             else 
             {			 
                            for   (int   i=0;i <count;i++)    
 	{ 
 	      g.DrawLine(pen,   20*i,20*i,50*i,20*i); 
 	}				 
             }			 
 }   
 private   void   timer1_Tick(object   sender,   System.EventArgs   e) 
 { 
             count   ++; 
             this.Invalidate(); 
 }
------解决方案--------------------private int count = 0 ;  		 
 protected override void OnPaint(System.Windows.Forms.PaintEventArgs e) 
 { 
     Graphics g = pictureBox1.CreateGraphics(); 
     Pen pen = new Pen(Color.Red,5); 
     if ( count == 10 ) 
     { 
 	count = 0; 
 	g.Clear(BackColor); 
     } 
     else 
     {			 
          for (int i=0;i <count;i++)  
 	{ 
 	  g.DrawLine(pen, 20*i,20*i,50*i,20*i); 
 	}				 
     }			 
 }   
 private void timer1_Tick(object sender, System.EventArgs e) 
 { 
     if(!this.DesignMode) 
     { 
         count ++; 
         this.Invalidate(); 
     } 
 } 
------解决方案--------------------你的控制在设计时Timer是不运行的,可是放到一个窗体上这个控件就相当于运行时了.   
 你可以通过DesignMode来判断是不是设计时,但是这个DesignMode在继承后可能就不准了.
------解决方案--------------------没试,不过这种现象不奇怪 
 既然Form2继承Form1,就会继承它的OnPaint行为,设计器里面会显示一个模拟的效果来给你看 
 第一次编译之前不会有,是因为设计器还不知道这个效果是什么样的   
 这件事情要理解应该比较简单,如果你现在添加一个button到form1,刚开始的时候,设计器上的form2是没反应的。如果你编译过,那么form2的设计器就会显示出这个button给你看 
 你所提到的现象,跟加一个button从继承的意义上来说,是一样的,只不过因为你重载了OnPaint,加计时器,做出了动态的效果