我有两个CheckListBoxes(chklbStep
,chklbSort
),它们包含类似的checklistbox项目。例如,在chklbStep下它看起来像"step_factor_20120828"
,在chklbSort下它看起来像srt_factor_20120828
:
chklbStep chklbSort
--------- ---------
step_factor_20120828 srt_factor_20120828
step_factor_20120829
每个列表中的总项目不完全匹配(有时chklbSort上的匹配项目不存在)。 chklbStep是'主人' checkboxlist包含所有内容。
我正在尝试镜像两个列表上的检查/取消选中操作,考虑到用户只能在chklbStep上检查/取消选中。以下代码的问题是,如果用户取消选中chklbStep中的相应项,则chklbSort上的项永远不会取消选中。 有什么想法吗?
Private Sub chklbStep_ItemCheck(sender As Object, e As ItemCheckEventArgs)
Handles chklbStep.ItemCheck
Dim listCheckedItems As New List(Of String)()
Dim listUNcheckedItems As New List(Of String)()
'
For Each item In chklbStep.CheckedItems
listCheckedItems.Add(item.ToString())
Next
If e.NewValue = CheckState.Checked Then
listCheckedItems.Add(chklbStep.Items(e.Index).ToString())
End If
'Trying to clear the items but this action does not work since the
'Sub is only called only on Checking an item
For i As Integer = 0 To chklbSort.Items.Count - 1
chklbSort.SetItemChecked(i, False)
Next
For Each item As String In listCheckedItems
Dim sSort As String = Regex.Replace(item, "step", "srt", RegexOptions.IgnoreCase)
Dim iSort As Integer = chklbSort.Items.IndexOf(sSort)
If iSort > -1 Then
chklbSort.SetItemChecked(iSort, True)
End If
Next
End Sub
答案 0 :(得分:0)
通过修改代码修复:
If e.NewValue = CheckState.Checked Then
listCheckedItems.Add(chklbStep.Items(e.Index).ToString())
Else
listCheckedItems.Remove(chklbStep.Items(e.Index).ToString())
End If