想在一个panel控件上实现对已画好曲线的放大功能,需要实现类似Phtoshop那样框选被选部分的功能。
当鼠标按下并且拖动时,矩形框就不断地变化。如同XP桌面上那样框选图标。
我只能做到在MouseMove事件中不断地绘制矩形,可是前一时刻的矩形框不会消失,而用panel.CreatGraphic().Clear()方法又会把所有的曲线清除(包括需要放大的曲线)。
高手帮忙指点一下,
有详细的代码最好。

解决方案 »

  1.   

    我的实现方法:new一个Form,无边框,定义一个比该Form小一圈的Region,赋予该Form的Region属性,在MouseMove中不断改变该Form的大小。
    不管你用什么方法实现,关键在于,你的绘图代码要放在Paint事件处理方法中,否则,一旦发生要绘制的情况,你所有绘制的图形都不再存在。
      

  2.   

    可以用ControlPaint.DrawReversibleFrame。这里有一个代码例子:
    http://msdn2.microsoft.com/en-us/library/system.windows.forms.controlpaint.drawreversibleframe.aspx
      

  3.   

    http://blog.csdn.net/wzuomin/archive/2006/12/13/1441007.aspx