Если вы говорите об идеальном решении, вам следует подумать об использовании MVC (что выигрышные формы НЕ поощряют), так что все данные, которые вас интересуют, находятся в инкапсулированном объекте, не связанном с пользовательским интерфейсом. (т.е. модель). Форма пользовательского интерфейса заполняет себя из данных, и приложение может извлекать данные, когда форма разрушена. Если объект данных реализует ISerializable, то вы почти закончили.
Если вы говорите целесообразно и абсолютно уверены, что он никогда не будет нуждаться в увеличении или изменении (что никогда не происходит - я делаю это только в одноразовых приложениях), то я бы поцарапал содержимое формы и записал их в подходящее место (пользовательские настройки, файлы данных и т. д.).
Если вы говорите о создании чего-то, что делает это как можно более простым, никогда и никогда не беспокоясь об этом никогда, никогда, я бы подумал об использовании привязки данных , или создание объектов сопоставления, которые понимают, как отображать данные из объектов в элементы пользовательского интерфейса и обратно (например, можно разделить основные элементы формы на подклассы, чтобы включить поле имени, или использовать начальное текстовое поле, чтобы найти ключ для поиска в serializable хеш-таблица или имя свойства в сериализуемом объекте).