想在一个panel控件上实现对已画好曲线的放大功能,需要实现类似Phtoshop那样框选被选部分的功能。
当鼠标按下并且拖动时,矩形框就不断地变化。如同XP桌面上那样框选图标。
我只能做到在MouseMove事件中不断地绘制矩形,可是前一时刻的矩形框不会消失,而用panel.CreatGraphic().Clear()方法又会把所有的曲线清除(包括需要放大的曲线)。
高手帮忙指点一下,
有详细的代码最好。
当鼠标按下并且拖动时,矩形框就不断地变化。如同XP桌面上那样框选图标。
我只能做到在MouseMove事件中不断地绘制矩形,可是前一时刻的矩形框不会消失,而用panel.CreatGraphic().Clear()方法又会把所有的曲线清除(包括需要放大的曲线)。
高手帮忙指点一下,
有详细的代码最好。
解决方案 »
- C# 过滤字符串中的汉字,效率高点的
- wpf控件调用委托界面依然停止响应
- vs 工具箱的问题
- 关于C#控制台程序的的args[]
- 如何验证用户注册的邮箱是否有效?
- C# ftp下载文件时报错401 (UNAUTHORIZED): ,登陆名密码都有,直接下载时可以,为什么会报401错?怎么解决?
- 求救:打印winform窗体(包括button,textbox,picturebox,listview...)
- 请问: 如何用鼠标拖拽改变无边框窗体大小
- 把行的记录数 放在一个数组里 ?
- 如何在C#编aspx网页中调用选择文件/文件夹对话框?
- 能否实现所搜索到的内容关键字标记为红色?
- 主线程一直循环OnPaint,导致内存不足!!! 可有解决办法
不管你用什么方法实现,关键在于,你的绘图代码要放在Paint事件处理方法中,否则,一旦发生要绘制的情况,你所有绘制的图形都不再存在。
http://msdn2.microsoft.com/en-us/library/system.windows.forms.controlpaint.drawreversibleframe.aspx