0

私は単純な To Do リスト プログラムに取り組んでいます。ユーザーはテキスト ボックスに何かを入力し、ボタンを押すと、テキストが項目として 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

とても近い!現時点では、コードは現在強調表示されている (チェックされていない) 項目のテキスト = "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 に答える