以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助] CheckedListBox 选择求助  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=111168)

--  作者:liujie6215
--  发布时间:2017/12/16 15:55:00
--  [求助] CheckedListBox 选择求助

我在 CheckedListBox    SelectedIndexChanged 事件中写入如下代码

Dim ckl As WinForm.CheckedListBox = e.Form.Controls("CheckedListBox1")
Dim a1 As String
For i As Integer = 0 To ckl.Items.count - 1
If ckl.GetItemChecked(i) = True Then
a1=e.Sender.SelectedValue
Dim a2 As DataRow = DataTables("总部统计表").find("单位=  \'"& a1 &"\'")
If a2 Is Nothing = True Then
Dim a3 As DataRow = DataTables("总部统计表").AddNew()
a3("单位") = a1
   End If
Else
Tables("总部统计表").current.Delete()
End If
Next

 

选择 单位后,无法添加,只有选择最后一个才能添加,而且当选中变成不选中状态时,报错

 

.NET Framework 版本:2.0.50727.8669
Foxtable 版本:2017.10.26.1
错误所在事件:窗口,综合统计表,CheckedListBox1,SelectedIndexChanged
详细错误信息:
未将对象引用设置到对象的实例。

我想实现的目的是:选择相应的“单位”后在 名叫“总部汇总表”中添加这个“单位”,若取消选中,则在“总部汇总表”中删除这个单位。请老师们给看一下问题出在哪里?

如有好的实现方式,也可以给指点一下,谢谢。

[此贴子已经被作者于2017/12/16 16:00:14编辑过]

--  作者:有点蓝
--  发布时间:2017/12/16 16:20:00
--  
代码写到ItemCheck事件

Dim a2 As DataRow = DataTables("总部统计表").find("单位=  \'" & e.Sender.Items(e.Index) & "\'")
If e.Checked Then
    If a2 Is Nothing Then
        a2= DataTables("总部统计表").AddNew()
        a2("单位") = a1
    End If
Else
    If a2 IsNot Nothing Then
        a2.Delete
    End If
End If


--  作者:liujie6215
--  发布时间:2017/12/17 12:57:00
--  你的答案太完美了。

问题解决,老师你太厉害了,非常完美,为你点赞!!!