2013-03-21 12 views
0

Я работаю над простой программой «Список дел», пользователь может ввести что-либо в текстовое поле, нажать кнопку и добавить текст в качестве элемента в 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 

Я не могу заставить его работать. Раньше я никогда не занимался CheckedListBox.

ответ

1

Очень близко! На данный момент ваш код ищет, отображается ли выделенный текст (не проверен) в тексте = «Истина».

Вместо этого нам нужно исследовать параметр 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 
+0

Спасибо так много для вашей уборки моего кода. Все еще изучает новые вещи с помощью vb.net. Что такое переменная «e»? – Matt

+0

Каждый метод управления формой Form .Net проходит в двух параметрах: «Отправитель» - это объект, который поднимает событие. например если у вас есть 1000 кнопок в вашей форме, «Sender» - это фактическая кнопка, которая была нажата, поэтому вам не нужно пытаться угадать, какую кнопку щелкнуть. «e» - это информация о мероприятии. Так, например, Button.MouseMove будет иметь параметр «e», содержащий позицию X и Y мыши. Различные события имеют разные «е» параметры, содержащие интересную информацию. –

Смежные вопросы