问题描述
我现在有个form,form里有一个panle,panle中控件若干(总数不定,并且可能画面中显示不全panle会出现滚动条),现在需要把panle中所有的东西按照画面的样子做成一张图片。求高手给予帮助!!!
解决方案
解决方案二:
你参考Me.Panel1.DrawToBitmap
解决方案三:
两个函数:PublicSubDrawControl(ByVal_ControlAsControl,ByVal_BitmapAsBitmap)_Control.DrawToBitmap(_Bitmap,_Control.Bounds)ForEachchildControlAsControlIn_Control.ControlsDrawControl(childControl,_Bitmap)NextEndSubPublicSubSaveBitmap(ByVal_PanelAsPanel,ByValfileNameAsString)UsingbmpAsNewBitmap(_Panel.Width,_Panel.Height)_Panel.DrawToBitmap(bmp,NewRectangle(0,0,_Panel.Width,_Panel.Height))ForEach_controlAsControlIn_Panel.ControlsDrawControl(_control,bmp)Nextbmp.Save(fileName)EndUsingEndSub
调用方法:SaveBitmap(Me.Panel1,"d:cc.bmp")
解决方案四:
引用2楼linjimu的回复:
两个函数:VB.NETcodePublicSubDrawControl(ByVal_ControlAsControl,ByVal_BitmapAsBitmap)_Control.DrawToBitmap(_Bitmap,_Control.Bounds)ForEachchildControlAsContro……
+++1
解决方案五:
引用2楼linjimu的回复:
两个函数:VB.NETcodePublicSubDrawControl(ByVal_ControlAsControl,ByVal_BitmapAsBitmap)_Control.DrawToBitmap(_Bitmap,_Control.Bounds)ForEachchildControlAsControl……
感谢2楼,这个方法我测试了,可以用。但是当容器生成图片的时候,就会同时生成容器内部的控件,而递归之后,控件就一共生成2次,并且遍历控件的那次生成的位置不正确。谢谢,至少给我提供了一个思路。