主题:请教图形移动时刷新的解决方案
效果:在窗体上(无论是否有背景图)画一个图形g1,然后再画一个图形g2.然后选择要拖动的图形,譬如g1.按住鼠标左键把g1拖到g2上,然后放开左键.再次选择要拖动的图形g1,按住鼠标左键把g1拖开.整个移动过程中g1和g2要求互不影响.
我的程序一开始就没用到窗体的Paint事件,因为考虑到它刷新的是整个窗体的客户区,而我又不想把双缓存打开浪费内存.
程序写到目前为止,如果窗体的背景是白色,画多个图形、选择和移动它们都没问题。g1和g2都是GraphicsPath类的对象,用GraphicsPath类的Transform()可以实现这个平移的功能,但如果做出像上面所说的移动步骤,在拖开g1后就会影响到被覆盖在下面的g2和背景图(如果有的背景图话)。
请教实现这个效果的最佳做法?
我的程序一开始就没用到窗体的Paint事件,因为考虑到它刷新的是整个窗体的客户区,而我又不想把双缓存打开浪费内存.
程序写到目前为止,如果窗体的背景是白色,画多个图形、选择和移动它们都没问题。g1和g2都是GraphicsPath类的对象,用GraphicsPath类的Transform()可以实现这个平移的功能,但如果做出像上面所说的移动步骤,在拖开g1后就会影响到被覆盖在下面的g2和背景图(如果有的背景图话)。
请教实现这个效果的最佳做法?