При создании пользовательского элемента управления метод Dispose автоматически создается для вас в файле yourUserControlName.Designer.cs. Добавьте любой код очистки этого метода. Вы можете изменить автоматически сгенерированный код на что-то вроде этого:
protected override void Dispose(bool disposing)
{
if (disposing)
{
if (components != null)
{
components.Dispose();
}
// your clean up code here
}
base.Dispose(disposing);
}
Таким образом, ваш код очистки не будет зависеть от объекта компонентов.