Foxtable(狐表)用户栏目专家坐堂 → [求助]控件截图


  共有2361人关注过本帖树形打印复制链接

主题:[求助]控件截图

帅哥哟,离线,有人找我吗?
天一生水
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
[求助]控件截图  发帖心情 Post By:2019/11/19 11:54:00 [只看该作者]

老师好!
我要同时保存页面集合中[题目]、[答案]页面中的 “PictureBox1”、“PictureBox2”的控件截图。
分别单独截取[题目]、[答案]的代码没有问题。
同时保存时,选择的页签和PictureBox控件要错开写代码,就是页签写[题目],图片要写PictureBox2。两段代码中间还要弹出msgbox~,中断一下运行代码。

请老师帮助看一下,是哪里的问题?

谢谢!

 

代码如下:(不能复制,只好传图片)

 


此主题相关图片如下:159.jpg
按此在新窗口浏览图片


 


此主题相关图片如下:截屏图片.jpg
按此在新窗口浏览图片

 


 

 下载信息  [文件大小:   下载次数: ]
点击浏览该文件:控件截图测试.rar

[此贴子已经被作者于2019/11/19 11:55:12编辑过]

 回到顶部
帅哥,在线噢!
有点蓝
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105951 积分:538830 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/19 12:03:00 [只看该作者]

'截取第一个页面
e.Form.Controls("TabControl1").SelectedIndex = 1   
Application.Doevents
Dim trv = e.Form.Controls("PictureBox1").BaseControl
Dim point As Point = e.Form.controls("tabcontrol1").basecontrol.PointToScreen(trv.Bounds.Location)
Dim myGraphics As Graphics = basemainform.CreateGraphics()
Dim s As new Size(trv.width-20, trv.height-60) '截取的大小
Dim bit As New Bitmap(s.Width, s.Height , myGraphics)
Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
memoryGraphics.CopyFromScreen(point.x+4, point.y+55, 0, 0, s) '截取的开始位置,坐标(100, 200)
bit.save(ProjectPath & "Attachments\图片\" & "TM" & ".jpg")
memoryGraphics.dispose
myGraphics.dispose
bit.dispose

'截取第二个页面
e.Form.Controls("TabControl1").SelectedIndex = 0
Application.Doevents
Dim trv1 = e.Form.Controls("PictureBox2").BaseControl
Dim point1 As Point = e.Form.controls("tabcontrol1").basecontrol.PointToScreen(trv1.Bounds.Location)
Dim myGraphics1 As Graphics = basemainform.CreateGraphics()
Dim s1 As new Size(trv1.width-20, trv1.height-60) '截取的大小
Dim bit1 As New Bitmap(s1.Width, s1.Height , myGraphics1)
Dim memoryGraphics1 As Graphics = Graphics.FromImage(bit1)
memoryGraphics1.CopyFromScreen(point.x+4, point.y+55, 0, 0, s1) '截取的开始位置,坐标(100, 200)
bit1.save(ProjectPath & "Attachments\图片\" & "DA" & ".jpg")
memoryGraphics1.dispose
myGraphics1.dispose
bit1.dispose
msgbox("答案已保存!")

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/11/27 10:54:00 [只看该作者]

蓝老师好!

页签中的PictureBox控件换成WebBrowser就不行了,如果起始页签是2,3,4,截图也不对,是什么原因?

实例中双击窗口中的行,调出截图窗口。

谢谢!

 

'代码如下:
With Tables("错题数据_table1")
   
    e.Form.Controls("TabControl1").SelectedIndex = 1
    Application.Doevents
    Dim trv = e.Form.Controls("WebBrowser1").BaseControl
    Dim point As Point = e.Form.controls("tabcontrol1").basecontrol.PointToScreen(trv.Bounds.Location)
    Dim myGraphics As Graphics = basemainform.CreateGraphics()
    Dim s As new Size(trv.width-20, trv.height-50) '截取的大小-不要改50
    Dim bit As New Bitmap(s.Width, s.Height , myGraphics)
    Dim memoryGraphics As Graphics = Graphics.FromImage(bit)
    memoryGraphics.CopyFromScreen(point.x+4, point.y+50, 0, 0, s) '截取的开始位置,坐标(100, 200)
    bit.save(ProjectPath & "Attachments\错题\" & Tables("错题数据_table1").Current("编号") & "TM" & ".jpg")
    .current("题目图片文件") = .Current("编号") & "TM" &  ".jpg"
    memoryGraphics.dispose
    myGraphics.dispose
    bit.dispose
    Forms("错题数据").Controls("PictureBox1").ImageFile = ""
    Forms("错题数据").Controls("PictureBox1").ImageFile = ProjectPath & "Attachments\错题\" & Tables("错题数据_table1").Current("编号") & "TM" & ".jpg"
   
   
    e.Form.Controls("TabControl1").SelectedIndex = 0
    Application.Doevents
    Dim trv1 = e.Form.Controls("WebBrowser2").BaseControl
    Dim point1 As Point = e.Form.controls("tabcontrol1").basecontrol.PointToScreen(trv1.Bounds.Location)
    Dim myGraphics1 As Graphics = basemainform.CreateGraphics()
    Dim s1 As new Size(trv1.width-20, trv1.height-50) '截取的大小
    Dim bit1 As New Bitmap(s1.Width, s1.Height , myGraphics1)
    Dim memoryGraphics1 As Graphics = Graphics.FromImage(bit1)
    memoryGraphics1.CopyFromScreen(point1.x+4, point1.y+50, 0, 0, s1) '截取的开始位置,坐标(100, 200)
    bit1.save(ProjectPath & "Attachments\错题\" & Tables("错题数据_table1").Current("编号") & "DA" &  ".jpg")    '很奇怪,应该是DA,却要改为TM
    .current("答案图片文件") = .Current("编号") & "DA" &  ".jpg"
    memoryGraphics1.dispose
    myGraphics1.dispose
    bit1.dispose
    Forms("错题数据").Controls("PictureBox2").ImageFile = ""
    Forms("错题数据").Controls("PictureBox2").ImageFile = ProjectPath & "Attachments\错题\" & Tables("错题数据_table1").Current("编号") & "DA" & ".jpg"

End With

msgbox("已保存!")

  


图片点击可在新窗口打开查看此主题相关图片如下:截屏图片 (1).jpg
图片点击可在新窗口打开查看

 


 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:错题本-测试.rar


 回到顶部
帅哥,在线噢!
有点蓝
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105951 积分:538830 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/27 11:21:00 [只看该作者]

……
bit.dispose
    Forms("错题数据").Controls("PictureBox1").ImageFile = ""
    Forms("错题数据").Controls("PictureBox1").ImageFile = ProjectPath & "Attachments\错题\" & Tables("错题数据_table1").Current("编号") & "TM" & ".jpg"
    
    Application.Doevents
    e.Form.Controls("TabControl1").SelectedIndex = 0
    Application.Doevents
    Dim trv1 = e.Form.Controls("WebBrowser2").BaseControl
……

 回到顶部
帅哥哟,离线,有人找我吗?
天一生水
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1137 积分:11224 威望:0 精华:0 注册:2017/9/26 16:30:00
  发帖心情 Post By:2019/11/27 12:17:00 [只看该作者]

蓝老师好!

经测试,连续点击保存15次,再点击保存5次......截的“题目”和“答案”的图相同;

另外,起始页面在“笔记感悟”、“识别信息”、“文本信息”时,“题目”的截图都是起始页面控件的图,不是“题目”页面的图。


 回到顶部
帅哥,在线噢!
有点蓝
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:105951 积分:538830 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/11/27 13:39:00 [只看该作者]

我测试没有问题,不行就等待几秒秒后再截第二个

……
bit.dispose
    Forms("错题数据").Controls("PictureBox1").ImageFile = ""
    Forms("错题数据").Controls("PictureBox1").ImageFile = ProjectPath & "Attachments\错题\" & Tables("错题数据_table1").Current("编号") & "TM" & ".jpg"
    Dim sdt As Date = Date.Now
While Date.Now < sdt.AddSeconds(2)
    Application.DoEvents
End While
    e.Form.Controls("TabControl1").SelectedIndex = 0
    Application.Doevents
    Dim trv1 = e.Form.Controls("WebBrowser2").BaseControl
……

 回到顶部