我有两种形式。
我需要对第一张表格进行屏幕截图,而不是将其放在表单2的顶部,也不需要包含表单2中的内容。
这是我正在使用的一些内容,我正在努力解决这个问题。
Private Function TakeScreenShot(ByVal Control As Control) As Bitmap
Dim Screenshot As New Bitmap(Control.Width, Control.Height)
Control.DrawToBitmap(Screenshot, New Rectangle(0, 0, Control.Width, Control.Height))
Return Screenshot
End Function
此功能无效,因为Control.drawtoBitmap未设置IMG的值。
IMG为空白,并以纯白图像的形式返回。
调用此函数是
TakeScreenShot(form1.webbrowser1).Save("c:\Screenshot.png",
System.Drawing.Imaging.ImageFormat.Png)
所有帮助将不胜感激。
答案 0 :(得分:11)
将TakeScreenShot
功能替换为:
Private Function TakeScreenShot(ByVal Control As Control) As Bitmap
Dim tmpImg As New Bitmap(Control.Width, Control.Height)
Using g As Graphics = Graphics.FromImage(tmpImg)
g.CopyFromScreen(Control.PointToScreen(New Point(0, 0)), New Point(0, 0), New Size(Control.Width, Control.Height))
End Using
Return tmpImg
End Function
这应该有效,但如果由于某种原因它不会出现问题,可能是顶部的透明形式。
你可以用完全相同的方式调用它。
祝你好运:)