画直线小程序需要改进,来看看吧
谁来帮我看看我的C#小程序 
    悬赏分:20   -   离问题结束还有   14   天   6   小时 
 编了一个画直线的小程序,我的思想是这样的,点了画直线按钮后,再按下鼠标就开始画线,不要松开鼠标键拖动的过程中会产生一条直线。松开鼠标后直线确定。    
 using   System;    
 using   System.Collections.Generic;    
 using   System.ComponentModel;    
 using   System.Data;    
 using   System.Drawing;    
 using   System.Text;    
 using   System.Windows.Forms;    
 namespace   DrawLine    
 {    
 public   class   Form1   :   Form    
 {    
 bool   stmove=false;//判断MouseMove操作是否开始    
 int   x1,y1,x2,y2;//声明线的起点和终点坐标    
 bool   start=false;    
 Graphics   g;    
 Button   btn;    
 Pen   pen;    
 public   Form1()    
 {    
 this.SuspendLayout();    
 pen   =   new   Pen(Color.Red,   2);    
 btn   =   new   Button();    
 btn.Text   =    "画直线 ";    
 this.Controls.Add(btn);    
 this.ResumeLayout();    
 btn.Click   +=   new   EventHandler(btn_Click);    
 this.MouseDown   +=   new   MouseEventHandler(Form1_MouseDown);    
 this.MouseUp   +=   new   MouseEventHandler(Form1_MouseUp);    
 this.MouseMove   +=   new   MouseEventHandler(Form1_MouseMove);    
 }    
 private   void   btn_Click(object   sender,EventArgs   e)    
 {    
 start   =   true;    
 g   =   this.CreateGraphics();    
 }    
 private   void   Form1_MouseDown(object   sender,MouseEventArgs   e)    
 {    
 if(start)    
 {    
 stmove   =   true;    
 x1=e.X;    
 y1=e.Y;    
 }    
 }    
 private   void   Form1_MouseMove(object   sender,   MouseEventArgs   e)    
 {    
 if   (stmove)    
 {    
 g.Clear(this.BackColor);    
 x2   =   e.X;    
 y2   =   e.Y;    
 g.DrawLine(pen,   x1,   y1,   x2,   y2);    
 }    
 }    
 private   void   Form1_MouseUp(object   sender,MouseEventArgs   e)    
 {    
 if(start)    
 {    
 y2   =   e.Y;    
 x2   =   e.X;    
 g.DrawLine(pen,x1,y1,x2,y2);    
 stmove   =   false;    
 }    
 }    
 static   void   Main()    
 {    
 Application.EnableVisualStyles();    
 Application.SetCompatibleTextRenderingDefault(false);    
 Application.Run(new   Form1());    
 }    
 }    
 }    
 我发现一个问题就是画完第一调直线后再画第2条,第一条就没了,怎么解决这个问题。
------解决方案--------------------public partial class Form5 : Form 
     { 
         public Form5() 
         { 
             InitializeComponent(); 
         }   
         private ArrayList drawingList = new ArrayList(); 
         private Line currentLine = null; 
         private void Form5_MouseDown(object sender, MouseEventArgs e) 
         { 
             currentLine = new Line(new Point(e.X, e.Y)); 
         }   
         private void Form5_MouseUp(object sender, MouseEventArgs e) 
         { 
             if (currentLine != null) 
             { 
                 currentLine.MouseMove(new Po