代码很完美,但我如何锁定listview中的检查项目(仅需要的项目)?
lvFees.Columns.Add("Fee", 120)
lvFees.Columns.Add("Amount", 76)
connect()
rec.Open("select * from tablePayments where sem='" & cboSem.Text & "'", con, 3, 3)
If rec.RecordCount <> 0 Then
Dim i As Integer = 0
Do Until rec.EOF
lvFees.Items.Add(rec("payname").Value)
lvFees.Items(i).SubItems.Add(rec("amount").Value)
If rec("paytype").Value = "REQUIRED" Then ' the paytype has two options, the "REQUIRED" and OPTIONAL.
lvFees.Items(i).Checked = True
End If
rec.MoveNext()
i = i + 1
Loop
End If
rec.Close()
con.Close()
我想锁定所有REQUIRED项目的检查,同时让用户检查并取消选中OPTIONAL项目
答案 0 :(得分:0)
我确信有更低层次的方法可以实现这一点,例如继承ListView
类并覆盖它的一些行为,但是对于更简单的方法,你可以简单地强制{ {1}}事件。您可以使用列表中每个项目的ItemChecked
属性来跟踪其“锁定”值。例如,如果您加载了一个Tag
控件,其中包含三个项目:
ListView
然后将这样的代码放在ListView1.Items.Add("Unlocked")
ListView1.Items.Add("Locked On").Tag = True
ListView1.Items(1).Checked = True
ListView1.Items.Add("Locked Off").Tag = False
事件处理程序中:
ItemChecked
然后这使得第一项的复选框可以被用户更改,但其他两项被锁定在各自的状态。