当前位置: 首页 > 编程语言 > C#

PaintEvent没有覆盖分享

时间:2023-04-10 15:13:23 C#

C#学习教程:PaintEvent未涵盖单击该按钮时,可以绘制一条由2个随机点组成的直线。Penp=newPen(Color.Black,5);//开始点Pointps=newPoint();//指向终点Pointpe=newPoint();privatevoiddrawPanel_MouseDown(objectsender,MouseEventArgse){ps.X=eX;ps.Y=eY;pe=ps;}privatevoiddrawPanel_MouseMove(objectsender,MouseEventArgse){//当按钮被点击绘制时draw=true;if(draw){if(e.Button==MouseButtons.Left){pe=newPoint(eX,eY);}}}privatevoiddrawPanel_MouseUp(objectsender,MouseEventArgse){onMouseUpFlag=true;}privatevoiddrawPanel_Paint(objectsender,PaintEventArgse){Graphicsg=drawPanel.CreateGraphics();如果(onMouseUpFlag){g.DrawLine(p,ps,pe);g.处置();该程序有一些缺陷:如何修复这些错误有什么建议吗?编辑我已经阅读了您的回答并进行了一些更改:Penp=newPen(Color.Black,5);点ps=newPoint();Pointpe=newPoint();列表linesStart=newList();列表行结束=newList();privatevoiddrawPanel_MouseDown(objectsender,MouseEventArgse){ps.X=eX;ps.Y=eY;行开始.添加(ps);pe=ps;}privatevoiddrawPanel_MouseMove(objectsender,MouseEventArgse){if(e.Button==MouseButtons.Left){pe=newPoint(eX,eY);//添加终点。.实际上加了很多点linesEnd.Add(pe);}}boolonMouseUpFlag=false;privatevoiddrawPanel_MouseUp(objectsender,MouseEventArgse){onMouseUpFlag=true;drawPanel.Invalidate();PaintEventArgse){if(onMouseUpFlag){for(inti=0;i