2013-03-21 7 views
0

간단한 To Do List 프로그램에서 작업 중이며 사용자는 텍스트 상자에 아무 것도 입력하고 버튼을 누르면 텍스트가 CheckedListBox에 항목으로 추가됩니다. 이제 체크 된 경우 각 항목 앞에 "완료"텍스트를 추가하고 사용자가 선택을 취소하면 텍스트를 제거하려고합니다.선택하면 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를 다뤄 본 적이 없다.

답변

1

매우 가깝습니다! 현재 코드에서 현재 강조 표시된 (선택하지 않은) 항목의 text = "True"인지 확인하려고합니다. 당신이 내 코드의 정리하는 대한

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 
+0

정말 고마워요 :

대신, 우리는 방법으로 전달되는 ItemCheckedEventArgs 매개 변수를 검토 할 필요가있다. vb.net을 사용하여 새로운 것을 배웁니다. 변수 "e"는 정확히 무엇입니까? – Matt

+0

.Net의 모든 Form Control Event 메서드는 두 개의 매개 변수를 전달합니다. "보낸 사람"은 이벤트를 발생시키는 개체입니다. 예 : 양식에 1000 개의 단추가있는 경우 "보낸 사람"이 클릭 된 실제 단추이므로 클릭 한 단추를 추측 할 필요가 없습니다. "e"는 이벤트에 대한 정보입니다. 예를 들어 Button.MouseMove에는 마우스의 X 및 Y 위치를 포함하는 "e"매개 변수가 있습니다. 이벤트마다 흥미로운 정보가 들어있는 "e"매개 변수가 다릅니다. –

관련 문제