Из вашего другого вопроса, я собираюсь догадаться, что вы используете VB .NET. Итак, RemoveHandler - ваш лучший выбор. Обычно в VB люди устанавливают обработчики событий, используя предложение Handles. Но вы также можете сделать это так:
AddHandler chk1.CheckedChanged, AddressOf DoSomething
где DoSomething может выглядеть так:
Private Sub DoSomething(ByVal sender As Object, ByVal e As EventArgs)
' whatever
End Sub
AddHandler подключает событие, чтобы оно сработало. Чтобы он не срабатывал, используйте RemoveHandler:
RemoveHandler chk1.CheckedChanged, AddressOf DoSomething
Перед обновлением свойства Checked ваших дочерних флажков, вызовите RemoveHandler для каждого из них; затем, когда вы закончите, вызовите AddHandler, чтобы вернуть обработчики событий. Если все ваши флажки используют один и тот же обработчик, вы можете поместить их в коллекцию и пройтись по коллекции, чтобы добавить или удалить обработчики.