一、问题
设置了远程文件的图片扩展列“测试FTP”和 FTP,已经能够上传图片,使用正常。
现在希望在该列实现单元格直接显示图片,并且鼠标进入时弹出大图。
参照此前论坛上甜老师给他人的一个回帖,设置了以下的代码,但是总是报错,为什么呢?
此主题相关图片如下:单元格绘制图片报错drawcell(1).jpg
此主题相关图片如下:单元格绘制图片报错drawcell(2).jpg
二、弹出窗口的设置
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
四、参考的实例图片
此主题相关图片如下:单元格绘制图片报错drawcell(3).jpg
[此贴子已经被作者于2019/7/21 16:01:12编辑过]