如果我在窗体用以下代码画了一幅图像...Graphics  g  =  this.CreatGraphics(); 
Image i = Image.FromFile("E:\\face.png");
RectAngel  rect  =  new  RectAngel(0,0,50,50);  
g.DrawImage(i, rect); 之后,我不想用重绘窗体的方式,就把rect区域的图像i去除/添除;或者只重绘rect区域内的东西!  注意:只是想实现重绘一个小小的区域!其他的保持不变...请问有什么方法可以实现呢???原因:这个区域占用窗体的位置实在太小了!如果重绘的话,会把整个窗体都刷新!太浪费了....

解决方案 »

  1.   

    DrawImage本来就是:在指定的位置使用原始物理大小绘制指定的 Image 对象
      

  2.   

    这个我知道!
    但是我想实现的是!在鼠标移动到rect区域的时候!显示第二张图片
    这个已经成功了!可是第一张图片还在第二张图片的下面!
    也就是说第二张图片只是履盖了第一张图片而已
    而没有将原来的图片清除掉居于这种情况!不用 重绘/刷新 能实现吗??在线等待
      

  3.   

    你不要求透明,用DirectDraw更容易
      

  4.   

    放个picturebox,透明背景不就OK了,你要画在他上面画
      

  5.   

    我就是想在窗体的Paint事件里面做处理而已
      

  6.   

    我这样用了之后都是清除不掉...Rectangle rectImage = new Rectangle(0,0,50,50);
    Region r = new Region(rectImage);
    Invalidate(r);是不是我用的方式不对??或者还有没有更好的办法??