以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- [求助] 要实现单元格直接显示图片,鼠标进入弹出大图,这段代码怎么总是出错呢? (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=138033) |
-- 作者:龙潭春早 -- 发布时间:2019/7/21 15:53:00 -- [求助] 要实现单元格直接显示图片,鼠标进入弹出大图,这段代码怎么总是出错呢? 一、问题 设置了远程文件的图片扩展列“测试FTP”和 FTP,已经能够上传图片,使用正常。 现在希望在该列实现单元格直接显示图片,并且鼠标进入时弹出大图。 参照此前论坛上甜老师给他人的一个回帖,设置了以下的代码,但是总是报错,为什么呢? 二、弹出窗口的设置 1)窗口名称:测试 FTP 图片伸缩 2)窗口内设置了控件:PictureBox1 3)窗口AfterLoad事件代码 e.Form.BaseForm.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None 三、表事件代码 1、StartEdit事件 Dim frm = Forms("测试 FTP 图片伸缩") If frm.opened Then frm.baseform.left = -1000 frm.baseform.Top = -1000 End If 2、Drawcell事件 —— 总是在这个事件上报错! If e.Col.name = "测试FTP" Then e.StartDraw If e.Row("测试FTP") > "" Then Dim Ls = e.Row.DataRow.Lines("测试FTP") e.Graphics.DrawImage(getimage(projectPath & "RemoteFiles\\测试\\" & Ls(0)), e.x + 3,e.y + 3, 50, 50) \' 绘制第一个图标 End If e.text = "" e.EndDraw End If 3、MouseEnterCell事件 Dim frm = Forms("测试 FTP 图片伸缩") If frm.opened = False Then frm.open End If If e.Col.name = "测试FTP" AndAlso e.Row("测试FTP") > "" Then frm.baseform.left = System.Windows.Forms.Cursor.Current.Position.X + 5 frm.baseform.Top = System.Windows.Forms.Cursor.Current.Position.Y + 5 e.Table.Focus Dim Ls = e.Row.DataRow.Lines("测试FTP") \'output.show(Ls(0)) frm.controls("picturebox1").image = getimage(projectPath & "RemoteFiles\\测试\\" & Ls(0)) Else frm.baseform.left = -1000 frm.baseform.Top = -1000 End If 4、MouseLeaveCell事件 Dim frm = Forms("测试 FTP 图片伸缩") If e.Col.name <> "测试FTP" AndAlso frm.opened Then frm.baseform.left = -1000 frm.baseform.Top = -1000 End If 四、参考的实例图片 [此贴子已经被作者于2019/7/21 16:01:12编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/7/21 21:10:00 -- If e.Col.name = "测试FTP" Then e.StartDraw If e.Row("测试FTP") > "" Then Dim Ls = e.Row.DataRow.Lines("测试FTP") If FileSys.FileExists(projectPath & "RemoteFiles\\测试\\" & Ls(0)) Then \'如果文件存在 e.Graphics.DrawImage(getimage(projectPath & "RemoteFiles\\测试\\" & Ls(0)), e.x + 3,e.y + 3, 50, 50) \' 绘制第一个图标 End If End If e.text = "" e.EndDraw End If |
-- 作者:龙潭春早 -- 发布时间:2019/7/21 21:59:00 -- 好一点儿,不报错了。 但还是不行,单元格和弹出的窗口里,都没显示图片。 鼠标进入单元格,弹出的窗口中没有图片: 点击单元格按钮,弹出的窗口能正常显示图片:
[此贴子已经被作者于2019/7/21 22:07:00编辑过]
|
-- 作者:有点蓝 -- 发布时间:2019/7/21 22:52:00 -- 说明图片还没有下载到本地。如果是远程网络下载是需要一定的时间的。 |
-- 作者:yifan3429 -- 发布时间:2019/7/21 22:55:00 -- 单元表显示图片功能 可以分享吗 |
-- 作者:有点蓝 -- 发布时间:2019/7/21 22:57:00 -- 以下是引用yifan3429在2019/7/21 22:55:00的发言:
1楼不是已经给出完整的用法了吗
单元表显示图片功能 可以分享吗 |
-- 作者:龙潭春早 -- 发布时间:2019/7/22 1:37:00 -- 以下是引用有点蓝在2019/7/21 22:52:00的发言:
蓝老师,之前在本地的 "RemoteFiles\\测试\\" 目录之下,已经有这些图片了,应该是已经下载下来了。
只是奇怪为什么单元格却不显示?
说明图片还没有下载到本地。如果是远程网络下载是需要一定的时间的。 |
-- 作者:龙潭春早 -- 发布时间:2019/7/22 1:43:00 -- 以下是引用yifan3429在2019/7/21 22:55:00的发言:
1楼的那些,就是完整的代码。
单元表显示图片功能 可以分享吗 |
-- 作者:有点蓝 -- 发布时间:2019/7/22 8:46:00 -- projectPath & "RemoteFiles\\测试\\" & Ls(0) 路径是否正确,是否存在此文件
|
-- 作者:龙潭春早 -- 发布时间:2019/7/22 13:45:00 -- 蓝老师,路径 "RemoteFiles\\测试\\" 是从Windows资源管理器的地址栏里直接复制来的,直接隶属于项目路径,应该都没有错。 文件 Ls(0) 是定义的字符集合调用的第一个图片,应该也没有错。只要单元格中有图片文件,就应该能够调用。 从下面的截屏中也可以看出,路径 "RemoteFiles\\测试\\" 下,确实存在不少图片文件。 您看:
|