苏州三木软件科技有限公司

 找回密码
 立即注册
搜索
热搜: 活动
查看: 331|回复: 3

如何让某单元格值发生变化时事件,忽略新增行引发的错误

[复制链接]

30

主题

45

帖子

191

积分

注册会员

Rank: 2

积分
191
发表于 2024-5-26 00:37:38 | 显示全部楼层 |阅读模式
我在表事件ColDataChanged中,写了某列值变化时触发的事件,但新增行时,会弹出“未将对象引用设置到对象的实例”错误,请问如何解决?
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2024-5-26 09:59:21 | 显示全部楼层
把你的代码贴出来,估计是你的代码写的有问题.
回复

使用道具 举报

30

主题

45

帖子

191

积分

注册会员

Rank: 2

积分
191
 楼主| 发表于 2024-5-26 10:28:03 | 显示全部楼层
        Public Sub ColDataChanged(sender As Object,e As  sanMuSoft.CS.WinForm.ColDataEventArgs)
                Dim tbl As SmGrid=Proj.CurrentSmGrid
                Dim strColName As String=tbl.Cols(tbl.Col).Name
                If strColName="drugname" AndAlso e.NewValue<>"" Then
                        If e.OldValue<>e.NewValue Then
                                MsgBox(e.NewValue)
                        End If
                End If
End Sub
回复

使用道具 举报

25

主题

313

帖子

2077

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
2077
QQ
发表于 2024-5-26 10:47:18 | 显示全部楼层

上面的代码在表事件中,引用当前表和当前列的方式有问题.

  1.                 Public Sub ColDataChanged(sender As Object,e As  sanMuSoft.CS.WinForm.ColDataEventArgs)
  2.                         '引用当前表的方式,直接使用sender转换
  3.                         Dim tbl As SmGrid=sender
  4.                         '获取列名称,直接根据e参数中ColData对象获得
  5.                         Dim strColName As String=e.ColData.Name
  6.                         If strColName="drugname" AndAlso e.NewValue<>"" Then
  7.                                 If e.OldValue<>e.NewValue Then
  8.                                         MsgBox(e.NewValue)
  9.                                 End If
  10.                         End If
  11.                 End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|苏州三木软件科技有限公司 ( 苏ICP备2022038390号 )

苏公网安备 32058502010732号

GMT+8, 2024-10-2 21:46 , Processed in 0.057533 second(s), 22 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表