Я уже некоторое время использую наследование форм, но без особых исследований со следующим подходом. Просто создайте новый класс вместо формы, унаследуйте от существующей формы и преобразуйте необходимые элементы управления в защищенные по мере необходимости. Дизайнер Visual Studio 2010 работает как шарм. Если требуется больше контроля, вы всегда можете переопределить базовые методы.
Я сейчас создаю общие формы следующим образом:
partial class EntityCollectionEditor < T > : Form where T : ISomeInterface < T >
Такие формы, когда они наследуются простыми не дизайнерскими классами, выдают следующую ошибку:
Невозможно отобразить конструктор для этого файла, поскольку ни один из классов внутри него не может быть спроектирован. Дизайнер проверил следующие классы в файле: XYZ. Базовый класс EntityCollectionEditor не может быть загружен. Убедитесь, что на сборку ссылались и что все проекты были построены.
Было бы неплохо быстрое решение, но я также ищу хороший ресурс / статью для самообразования.