绘制直线的重绘问题

问题描述

我在做一个简单的画板,做到了绘制知道的地方,但是再画第二次直线的时候就会把前面的一条直线给擦掉,请问谁有关于直线重绘的代码,帮忙给我介绍一下呀,急需!

解决方案

解决方案二:
你没说你用什么方法绘制的,如果可以,请贴出关键代码
解决方案三:
privatevoidpictureBox1_MouseMove(objectsender,System.Windows.Forms.MouseEventArgse){if(drawing){Graphicsg=this.pictureBox1.CreateGraphics();PenbackPen=newPen(this.pictureBox1.BackColor);g.DrawLine(backPen,this.start,this.end);this.end.X=e.X;this.end.Y=e.Y;PenforePen=newPen(Color.Blue);g.DrawLine(forePen,this.start,this.end);}}privatevoidpictureBox1_MouseUp(objectsender,System.Windows.Forms.MouseEventArgse){if(drawing){Graphicsg=this.pictureBox1.CreateGraphics();PenbackPen=newPen(this.pictureBox1.BackColor);g.DrawLine(backPen,this.start,this.end);this.end.X=e.X;this.end.Y=e.Y;PenforePen=newPen(Color.Blue);g.DrawLine(forePen,this.start,this.end);this.drawing=false;this.drawing=false;array.Add(newRectangle(this.start,newSize(this.width,this.height)));}}这是我做的关于mousemove和mouseup的代码
解决方案四:
引用2楼wodewaisheng的回复:

privatevoidpictureBox1_MouseMove(objectsender,System.Windows.Forms.MouseEventArgse){if(drawing){Graphicsg=this.pictureBox1.CreateG……

每次都CreateGraphics,当然会被清除掉吧。改用Graphicsg=Graphics.FromImage(pictureBox1.Image);这样试试。还有画完了别忘了g.Dispose();
解决方案五:
我还是新手,这个方法不懂,可不可以在我创建的代码的基础上写一下关于paint的重绘的代码呀?

时间: 2024-07-30 10:51:17

绘制直线的重绘问题的相关文章

Android学习Scroller(五)——详解Scroller调用过程以及View的重绘

PS: 该篇博客已经deprecated,不再维护,详情请参见  站在源码的肩膀上全解Scroller工作机制  http://blog.csdn.net/lfdfhl/article/details/53143114 MainActivity如下: package cc.ww; import android.os.Bundle; import android.widget.ImageView; import android.widget.ImageView.ScaleType; import

编辑框重绘-重绘编辑框成组合框的样式,编辑框输入时,显示不了自己绘制的小三角。

问题描述 重绘编辑框成组合框的样式,编辑框输入时,显示不了自己绘制的小三角. 请教个问题,自己绘制了一个像组合框的编辑框,就是重绘编辑框,把编辑框分成了两部分,在右面部分显示一个黑色小三角,为何鼠标点击编辑框内部的时候,右边小三角看不到了,能帮忙分析下是什么情况吗. 解决方案 你的重绘代码怎么写的,编辑框获得焦点它的客户区绘图完了然后再调用你的代码才行. 解决方案二: 鼠标不在编辑框内显示带黑色小三角 鼠标点击编辑框内黑色小三角不显示了 是神马原因?急求!!! 解决方案三: // SelfDra

MFC 窗口重绘问题

在客户区画直线等图形时, 发现当其最小化或者其他窗口遮挡时,出现窗口重绘,而将原来绘制的图形删除,上网上搜索知道,绘制图形的代码必须放置在Ondraw函数中,才能避免重绘时图形消失(因为一直在响应WM_PAINT消息,不断的重绘),但是这样做却只能保存最近的一次绘图,只适用于单幅固定的图形,对于其中有多幅图形就不能这么做了,解决的思路是:考虑到MFC时 文档/视图 类,视图CView负责数据的显示和修改,文档CDocument类负责数据的存储和加载,从而把数据管理和显示方法分离开来.我们在CDo

用UserControl和drawLine画图的重绘

问题描述 界面画网络拓扑图,因为网络节点需要支持点击事件,所以做成了UserControl的,节点之间的链路直接用Graphics.drawLine()方法绘制,当窗口改变大小后节点还在,但是画的直线没了.希望能实现的效果是窗口改变大小后网路拓扑图会相应的改变,希望有知道的麻烦给个思路谢谢~! 解决方案 解决方案二:画线要在Paint事件里,如果没有放在这个事件里画,在重绘以后就会消失了.解决方案三:大小改变时候update~一种是control的paint中绘制,一种在pixturebox绘制

使用Raphael绘制流程图,自绘动态箭头,可拖动,有双击事件,纯前端,兼容各种浏览器

关于Raphaël Raphaël是一个在网页上绘图的js类库,非常小压缩版只有89k左右 官方宣称兼容各种主流浏览器,据笔者测试在IE6下尚有一些问题(不过这些与本文无关) 他是使用js来创建vml或svg来绘图的 缘起 项目中不能使用Silverlight或者flash来解决绘图和拖动的问题 而且为了项目效果较好,要求拖动的时候箭头能动态改变起点和重点,别且箭头要改变方向 所以只能考虑JS了 效果 演示 http://www.mrlh.net/flowchart/demo.htm[已经不能访

Win32开发入门(3) 窗口的重绘

我们今天来吹一下关于窗口重绘的事情,在开始吹牛之前,我们先用上一篇博文中说到的方法写一 个简单的Win32应用程序.代码如下: #include <Windows.h> //先声明一下消息处理函数 LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); // 入口点 int CALLBACK WinMain( HINSTANCE hInstance, HINSTANCE hPrvInst

iOS之UI--Quartz2D的入门应用--重绘下载圆形进度条

iOS之重绘下载圆形进度条 开发须知快速预览: 1.关于了解PI的数值: 2.- (void)drawRect:(CGRect)rect 相关: 这个方法只在self对应的控件首次创建系统会执行,为了能够达到重绘的作用, 就需要重新绘制调用这个drawRect方法,但是推荐使用一下方法: rect其实就是self本身,关于self的不变的数据,可以抽取出来优化. 效果展示: 根据效果展示应该能够很快知道需求吧,然后根据需求开始的开发过程: 1.拖拽需要的UI控件,并设置相关的属性 2.创建UIV

代码- c# 重绘问题 求解答 doc.drawobjectlist 怎么获取

问题描述 c# 重绘问题 求解答 doc.drawobjectlist 怎么获取 由于刚学习c#,窗口全屏的时候,控件自适应移动位置,在移动的时候出现严重闪烁,自己查了一下,用双缓冲效果不大,所以用重绘,但是代码完全看不懂...求解答,doc.drawobjectlist是从哪里获取的? Rectangle rect = e.ClipRectangle; Bitmap bufferimage = new Bitmap(this.Width, this.Height); Graphics g =

重绘问题,急需求解,在线等

问题描述 usingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Text;usingSystem.Windows.Forms;namespace自动演示皇后问题{publicpartialclassForm1:Form{publicintn;//输入的皇后个数publicfloatx;//画表格的横坐标publi