如何锁定listview中的检查项目

时间:2015-03-03 21:06:40

标签: vb.net listview

代码很完美,但我如何锁定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项目

1 个答案:

答案 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

然后这使得第一项的复选框可以被用户更改,但其他两项被锁定在各自的状态。