以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  全局变量Image在窗口表事件中使用提示错误  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=195903)

--  作者:jswalley
--  发布时间:2025/3/19 22:55:00
--  全局变量Image在窗口表事件中使用提示错误
在全局变量中定义   Public delimg As Image = GetImage("BtnCancel_16.ico")
在表的DrawCell事件中写代码

If e.Col.name = "删除" Then
    e.StartDraw
    If e.MouseHover = True Then\'如果鼠标在此单元格  
        e.Graphics.DrawImage( delimg, e.x + 2, e.y + 2) \'绘制图标
    End If
    e.EndDraw
End If

提示
.NET Framework 版本:4.0.30319.42000
Foxtable 版本:2025.1.3.1
错误所在事件:表,成功登录用户表,DrawCell
详细错误信息:
调用的目标发生了异常。
值不能为 null。
参数名: image

图片的文件在images目录中。

如果delimg 改成 GetImage("BtnCancel_16.ico") 可以正常运行。

但有一个问题,显示一个删除图标之后,移到下一行,上面的删除图标不会消失。


--  作者:有点蓝
--  发布时间:2025/3/20 9:41:00
--  
不能在定义public变量的时候直接赋值

全局变量中定义   Public delimg As Image 

项目AfterOpenProject事件

delimg  = GetImage("BtnCancel_16.ico")

DrawCell事件中写代码

If e.Col.name = "删除" andalso delimg isnot nothing Then
    e.StartDraw
    If e.MouseHover = True Then\'如果鼠标在此单元格  
        e.Graphics.DrawImage( delimg, e.x + 2, e.y + 2) \'绘制图标
    End If
    e.EndDraw
End If

--  作者:jswalley
--  发布时间:2025/3/20 10:00:00
--  
谢谢老师,但第二个问题,还是存在。
显示一个删除图标之后,移到下一行,上面的删除图标不会消失。一直往下都有,然后回到上面行,有时候删除图标又可以消失。
图片点击可在新窗口打开查看

--  作者:有点蓝
--  发布时间:2025/3/20 10:08:00
--  
MouseEnterCell事件

e.table.Refresh