Не секрет, что пользователь, проработавший некоторое время с программой, пытается ее настроить «под себя»: поменять цветовую гамму, расположение панелей инструментов, изменить ширину столбцов в сетке DataGridView… На последней возможности остановимся по подробнее.

За разрешение изменять ширину столбца отвечает свойство AllowUserToResizeColumns элемента управление DataGridView, которое по умолчанию установлено в true. Поэтому, если просто поместить компонент DataGridView на форму, пользователь сможет изменять ширину столбцов по своему усмотрению. Однако, если приложение будет закрыто, то все изменения будут потеряны и, при последующем запуске программы, ширина столбцов будет установлена до размеров, заданных программистом во время разработки программы.

Для того, чтобы устранить это досадное «недоразумение» необходимо предусмотреть сохранение ширины столбцов при закрытии приложения и восстановление ее при запуске программы. Раньше для этих целей использовался реестр Windows, теперь же принято «гадить» в профиле пользователя. Хранение параметров приложения в конфигурационном в каталоге с исполняемым файлом плохая идея: есть люди, работающие под учетной записью, не обладающей правами администратора (их немного, но они есть ;), для которых запись в Program Files запрещена (справедливо для файловой системы NTFS).
(далее…)