以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 单元格显示按钮出错 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=184170) |
-- 作者:happyft -- 发布时间:2022/11/26 17:08:00 -- 单元格显示按钮出错 按帮助一样的方式在表中增加按钮,但drawcell事件执行会出错 If e.Col.name = "删" Then e.StartDraw If e.MouseHover = False Then\'如果鼠标不在此单元格 e.Graphics.DrawImage(delimg1, e.x + 3, e.y + 3) \'绘制第一个图标 Else \'如果鼠标在此单元格 e.Graphics.DrawImage(delimg2, e.x + 2, e.y + 2) \'绘制第二个图标 End If e.EndDraw End If .NET Framework 版本:4.0.30319.42000 Foxtable 版本:2022.8.18.1 错误所在事件:表,生产日报自动车_明细,DrawCell 详细错误信息: 调用的目标发生了异常。 值不能为 null。 参数名: image 全局代码图标都复制到指定的目录了,会是什么原因呢,谢谢! |
-- 作者:有点蓝 -- 发布时间:2022/11/26 17:40:00 -- 图标文件肯定不存在。复制到项目里的images目录 |
-- 作者:HappyFt -- 发布时间:2022/11/26 18:18:00 -- 已经复制了,找到原因了,直接用全局代码中已赋值变量就是空空值导致出错,用红色的在绘制时才获取就没问题 If e.Col.name = "生成品质异常单" Then e.StartDraw If e.MouseHover = False Then\'如果鼠标不在此单元格 e.Graphics.DrawImage(GetImage("addimage.png"), e.x, e.y) \'绘制第一个图标 \'e.Graphics.DrawImage(addimg1, e.x, e.y) \'绘制第一个图标 Else \'如果鼠标在此单元格 e.Graphics.DrawImage(GetImage("addimage2.png"), e.x + 1, e.y + 1) \'绘制第二个图标 \' e.Graphics.DrawImage(addimg2, e.x + 1, e.y + 1) \'绘制第二个图标 End If e.EndDraw End If 下面是全局代码 Public addimg1 As Image = GetImage("addimage.png") \'双击新增按钮 Public addimg2 As Image = GetImage("addimage2.png") \'双击新增按钮 应该是程序bug,用addimg1显示其宽高等属性出错 Dim img As Image = addimg1 OutPut.Show(img.Height) 上面两行代码运行出错 |
-- 作者:有点蓝 -- 发布时间:2022/11/27 20:04:00 -- 不要在全局代码里直接给变量赋值 全局代码 Public addimg1 As Image Public addimg2 As Image AfterOpenProject事件 addimg1 = GetImage("addimage.png") addimg2 = GetImage("addimage2.png") |
-- 作者:HappyFt -- 发布时间:2022/11/27 22:11:00 -- 这样是可以了,那应该把帮助文件中改一下,不然有时真的很难找到错误, 谢谢!
|