If the control is in a group box or panel, you need to search there for it. Think of it as searching for a file you stored in a directory "c:\temp". If you only search in "c:\" you won't find it, you need to look in "c:\temp". Likewise, group boxes and panels are containers.
Can't quite remember where i found this but it works like a charm.
Add the following method in your application
public IEnumerable<T> FindControls<T>(Control control) where T : Control
var controls = control.Controls.Cast<Control>();
return controls.SelectMany(ctrl => FindControls<T>(ctrl))
.Where(c => c.GetType() == typeof(T)).Cast<T>();
Then you can call it as followed.
var t = FindControls<CheckedListBox>(this);
foreach(Control c in t)
This will for example bring back all the checklistboxes on the control you called the method with. Above the form is being passed in. this