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