Para cada <item> em CheckedListBox. <item> retorna como objeto e não como controle

Eu tenho um CheckedListBox preenchido anteriormente. Eu quero fazer um loop com um "para cada / próximo" por todos os itens no CheckedListBox e fazer muitas "coisas" com cada elemento de iteração da caixa de verificação.

código de exemplo:

    For Each item In CheckedListBox1.Items

        If item.Checked = True Then

            'do stuff like
            item.BackColor = Color.Blue

        Else

            'do other stuff
            item.BackColor = Color.Brown

        End If

    Next

o problema é que é do tipo 'Objeto' e não do tipo 'Controle'. Se eu forçar a iteração var As CheckBox, ele lança uma InvalidCastException dizendo que o tipo 'System.String' não pode ser associado ao tipo 'System.Windows.Forms.CheckBox'

Eu sei que posso contornar isso com facilidade, mas quero usar um loop for each / next, pois tenho muito código nesse loop (e With não pode ser usado) e sempre apontando diretamente para o objeto é algo que desejo evitar e eu realmente preciso que o código seja o mais simples possível.

Na verdade, passei uma tarde procurando por isso, mas não consegui encontrar resposta.

questionAnswers(2)

yourAnswerToTheQuestion