如何将PictureBox上的内容保存为一张图片? 
包括手动绘制的部分,PictureBox中的控件,背景图片,还有PictureBox可能很大,也需要保存包括不可见部分?

解决方案 »

  1.   

    有一个函数savepicture
    SavePicture Picture1.Image, "c:/fff.bmp"
    可以改变保存的属性,比如改正为PICUTRE1.PICTURE
      

  2.   

    Picture1.Image包含不可见部分
    Picture1.Picture不包含不可见部分
    SavePicture 语句
       从对象或控件(如果有一个与其相关)的 Picture 或 Image 属性中将图形保存到文件中。语法SavePicture picture, stringexpressionSavePicture 语句的语法包含下面部分:参数 描述 
    picture 产生图形文件的 PictureBox 控件或 Image 控件。 
    stringexpression 欲保存的图形文件名。 
    说明无论在设计时还是运行时图形从文件加载到对象的 Picture 属性,而且它是位图、图标、元文件或增强元文件,则图形将以原始文件同样的格式保存。如果它是 GIF 或 JPEG 文件,则将保存为位图文件。Image 属性中的图形总是以位图的格式保存而不管其原始格式。SavePicture 语句示例
    本例使用 SavePicture 语句保存画在 Form 对象的 Picture 属性中的图形。要试用此例,可将以下代码粘贴到 Form 对象的声明部分,然后运行此例,单击 Form 对象。Private Sub Form_Click ()
       ' 声明变量。
       Dim CX, CY, Limit, Radius   as Integer, Msg as String
       ScaleMode = vbPixels   ' 设置比例模型为像素。
       AutoRedraw = True ' 打开 AutoRedraw。
       Width = Height   ' 改变宽度以便和高度匹配。
       CX = ScaleWidth / 2   ' 设置 X 位置。
       CY = ScaleHeight / 2   ' 设置 Y 位置。
       Limit = CX   ' 圆的尺寸限制。
       For Radius = 0 To Limit   ' 设置半径。
          Circle (CX, CY), Radius, RGB(Rnd * 255, Rnd * 255, Rnd * 255)
          DoEvents   ' 转移到其它操作。
       Next Radius
       Msg = "Choose OK to save the graphics from this form "
       Msg = Msg & "to a bitmap file."
       MsgBox Msg
       SavePicture Image, "TEST.BMP"   ' 将图片保存到文件。
    End Sub
      

  3.   

    记得要将PictureBox的AutoRedraw属性设置为True。
      

  4.   

    用SavePicture Picture1.Image, "c:/fff.bmp" 这种方式好像不能把PictureBox中的控件也保存为图片啊.
      

  5.   

    搞半天你是这个意思?参考这个:
    http://community.csdn.net/Expert/topic/3855/3855512.xml?temp=.2521326
      

  6.   

    TO XunBaian(蓝水晶):
      用PictureBox中的控件很多,需要用滚动条才能查看全部内容,屏幕只能同时其中显示一部分内容,
    用上面的方法无法将不可见部分也保存为图片.
      有没有更好的方法?
      

  7.   

    别的办法没有,但可以这样做。
    再加多一个PictureBox,让它足够大(大到不用滚动条都能显示所有控件),而Left和Top设置得不要让它在Form的可见区,然后将你要保存图片的PictureBox上的内容转到这个PictureBox上,再保存这个新的。除此之外,我想不出还有什么好办法! :(
      

  8.   

    或者你在按保存时,自动放大Picture,然后保存,然后再复原。
      

  9.   

    就是savepicture!
    可见不可见都可以存的。
    不过要把picture的autodraw属性设置为true。
    应该就可以了!!我这个东西一直都在用。没啥问题
      

  10.   

    或者你在按保存时,自动放大Picture,然后保存,然后再复原。
    -------------------------------------------------------------
    这样做最大只能保存和屏幕一样大的图片,我的PictureBox中的内容在一般情况下会超过屏幕的大小,所以很可能还是有一些显示不出来的.
      

  11.   

    或者你在按保存时,自动放大Picture,然后保存,然后再复原。
    -------------------------------------------------------------
    这样做最大只能保存和屏幕一样大的图片,我的PictureBox中的内容在一般情况下会超过屏幕的大小,所以很可能还是有一些显示不出来的.
    ==============================================================你可以将PictureBox放到比屏幕还大都没问题的,主要是用你的PictureBox的客户区,和屏幕大小没关系。