0

我正在开发一个简单的待办事项列表程序,用户可以在文本框中键入任何内容,按下按钮,然后将文本作为项目添加到 CheckedListBox。现在,如果选中,我想在每个项目之前添加文本“完成”,然后如果用户取消选中,则删除文本。

代码:

 Private Sub MyCbList_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles MyCbList.ItemCheck
    If MyCbList.Items.Item(MyCbList.SelectedIndex) = True Then
        MyCbList.Items.Item(MyCbList.SelectedIndex) = "Done: " + MyCbList.Items.Item(MyCbList.SelectedIndex)
    Else
        MyCbList.Items.Item(MyCbList.SelectedIndex) = MyCbList.Items.Item(MyCbList.SelectedIndex).Replace("Done: ", "")
    End If
End Sub

我似乎无法让它工作。我以前从未处理过 CheckedListBoxes。

4

1 回答 1

1

很接近!目前,您的代码正在查看当前突出显示(未选中)项目的 text = "True"。

相反,我们需要检查传递给方法的 ItemCheckedEventArgs 参数:

Private Sub MyCbList_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles MyCbList.ItemCheck
    If e.NewValue = CheckState.Checked Then
        MyCbList.Items.Item(e.Index) = "Done: " + MyCbList.Items.Item(MyCbList.SelectedIndex)
    Else
        MyCbList.Items.Item(e.Index) = MyCbList.Items.Item(MyCbList.SelectedIndex).Replace("Done: ", "")
    End If
End Sub
于 2013-03-21T22:20:20.480 回答