Если вы пишете класс, имеющий ссылку на файлы / изображения, вы несете ответственность за обеспечение механизма их выпуска.
Для всех приложений .NET (не только для WinForms) реализация IDisposable для любого типа, содержащего ссылки на большие ресурсы файлов / памяти, всегда является хорошим началом.
Если вы используете типы фреймворков, которые обращаются к ресурсам, то, как говорили другие, блоки использования - это элегантное решение.
Можно также заставить сборщик мусора удалять типы в то время, когда вы запрашиваете это сделать (детерминистически), однако настоятельно рекомендуется не делать этого, а вместо этого разрешить сборщику мусора решать за себя. как для повышения производительности, так и для управления памятью.
Наконец, поскольку фактически вызов Dispose (напрямую или через использование) выполняется пользователем ваших типов, необходимо четко документировать это (XML-комментарии и т. Д.).
См. Этот ранее SO вопрос для более подробной информации