以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  listview 的事件响应(已解决)  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=59123)

--  作者:arthurshoe
--  发布时间:2014/10/29 23:27:00
--  listview 的事件响应(已解决)
listview是这样构建的
Dim lvw As WinForm.ListView = e.Form.Controls("sample_lv")
    lvw.StopRedraw() \'暂停绘制
    lvw.Rows.Clear() \'清除原来的行
    lvw.Images.Clear() \'清除原来的图片
    lvw.CheckBoxes = True \'显示复选框
    Dim lr As  WinForm.ListViewRow
    For Each dr As DataRow In DataTables("开发样品表").DataRows
        lvw.Images.AddLargeImage(dr("_identify"),dr("图片"))
        lr = lvw.Rows.Add()
        lr.Text = dr("工厂款号")
        lr.ImageKey = dr("_identify")
        lr.Tag = dr
    Next
    lvw.View = ViewMode.LargeIcon
    lvw.Images.LargeSize = New Size(96,48)
    lvw.ResumeRedraw() \'恢复绘制


listview的rowchecked事件
MessageBox.Show(e.Row.Tag("工厂款号"))

选中checkbox可以正确显示 工厂款号
问题是 每次构建新的listview,比如加载下一页 datatable,重新构建listview,每一条datarow提示一次

.NET Framework 版本:2.0.50727.5485
Foxtable 版本:2014.10.23.1
错误所在事件:窗口,开发样品窗口,sample_lv,Click
详细错误信息:
未设置对象变量或 With 块变量。

其他一切正常!
请帮忙!!!


经过测试发现时这句会出现提示

lvw.Rows.Add()

但是不知道原因。。。哪位知道怎么回事?是不是要什么new 构建对象。。但是不知道怎么构建WinForm.ListViewRow,代码是case study里面的啊


自己找到原因了,刚加listviewrow的时候checkbox状态就发生变化,这时候的datarow还没有加进去,代码改成以下就不提示
If e.Row.Tag Is Nothing Then
MessageBox.Show("nothing") 
Else 
MessageBox.Show(e.Row.Tag("工厂款号")
End If