Любая идея - предотвратить снятие отметки с последнего проверенного элемента пользователем или проверить, что хотя бы один элемент проверен перед продолжением - довольно проста для реализации.
Как запретить пользователю снимать отметку с последнего проверенного элемента
1. Убедитесь, что хотя бы один элемент отмечен для начала (например, в событии Load
вашей формы) :
Private Sub frm_Load(ByVal sender As Object, ByVal e As EventArgs)
clb.SetItemChecked(0, True) ' whatever index you want as your default '
End Sub
2. Добавьте некоторую простую логику в ваш ItemCheck
обработчик событий :
Private Sub clb_ItemCheck(ByVal sender As Object, ByVal e As ItemCheckEventArgs)
If clb.CheckedItems.Count = 1 Then ' only one item is still checked... '
If e.CurrentValue = CheckState.Checked Then ' ...and this is it... '
e.NewValue = CheckState.Checked ' ...so keep it checked '
End If
End If
End Sub
Как проверить, что хотя бы один элемент отмечен
Private Sub btn_Click(ByVal sender As Object, ByVal e As EventArgs)
' you could also put the below in its own method '
If clb.CheckedItems.Count < 1 Then
MsgBox("You must check at least one item.")
Return
End If
' do whatever you need to do '
End Sub