В моей программе я использовал следующий трюк:
CheckedListBox.SetItemChecked(CheckedListBox.Items.IndexOf(Item),true);
Как все работает:
SetItemChecked (int index, bool value) - это метод, который устанавливает точное проверенное состояние для определенного элемента. Необходимо указать индекс элемента, который вы хотите проверить ( использовать метод IndexOf, в качестве аргумента указать текст элемента ) и проверенное состояние ( true означает, что элемент проверен, ложь не проверена ).
Этот метод запускает все элементы в CheckedListBox и проверяет ( или снимает флажок ) элемент с указанным индексом.
Например, короткий фрагмент моего кода - цикл FOREACH проходит по указанным именам программ, и, если программа содержится в CheckedLitBox ( CLB ... ), проверяет его:
string[] ProgramNames = sel_item.SubItems[2].Text.Split(';');
foreach (string Program in ProgramNames)
{
if (edit_mux.CLB_ContainedPrograms.Items.Contains(Program))
edit_mux.CLB_ContainedPrograms.SetItemChecked(edit_mux.CLB_ContainedPrograms.Items.IndexOf(Program), true);
}