以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]表的DrawCell报错  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=24345)

--  作者:chnfo
--  发布时间:2012/10/11 11:12:00
--  [求助]表的DrawCell报错
1.有一个表A,与之关联了一个表A.B
2.表A有一个自定义样式名SelRow

在表A的DrawCell事件里,加了一段事件代码
If e.Row("_Identify") = CurrentTable.Current("_Identify") Then
    e.Style = "SelRow"
End If

表A.B最开始没有数据行。
当选择了A表的行,鼠标单击表A.表B的区域(以示选中了表A.表B)时,报出错误

.NET Framework 版本:2.0.50727.5456
Foxtable 版本:2012.9.28.1
错误所在事件:表,表A,DrawCellEdit
详细错误信息:
System.Reflection.TargetInvocationException: 调用的目标发生了异常。 ---> System.NullReferenceException: 未将对象引用设置到对象的实例。
   在 UserCode.DrawCell(DrawCellEventArgs e)

然后提示Draw事件执行错误,在您修正代码之前,将暂停执行该事件代码。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:drawcell.table

这是咋回事呢?
[此贴子已经被作者于2012-10-11 11:16:38编辑过]

--  作者:chnfo
--  发布时间:2012/10/11 11:22:00
--  
加了一个判断表名。
if currenttable.name = "表A"
If e.Row("_Identify") = CurrentTable.Current("_Identify") Then
    e.Style = "SelRow"
End If
end if 

不知道是不是这个原因?没有判断表名?
[此贴子已经被作者于2012-10-11 11:21:53编辑过]

--  作者:狐狸爸爸
--  发布时间:2012/10/11 11:27:00
--  

用事件,最基本的一点,就是要明白这个事件有哪些e参数:

 

If e.Row("_Identify") = e.Table.Current("_Identify") Then
    e.Style = "SelRow"
End If