.NET Framework пытается избежать больших изменений конфигурации системы от дестабилизирующих программ. Эта функция охватывает даты, время и информацию о культуре. Это происходит путем ленивого извлечения настроек и их кэширования, чтобы они всегда возвращали одно и то же значение.
Вы можете сбросить этот кеш, вызвать CultureInfo.ClearCachedData () и TimeZoneInfo.ClearCachedData (). Вы можете сделать это, например, написав обработчик события для SystemEvents.UserPreferenceChanged. Должны ли вы сделать это немного сомнительно. Не требует перезагрузки, достаточно просто перезапустить приложение.
Fwiw: причина, по которой DateTimePicker работает по-другому, заключается в том, что это собственный элемент управления Windows. Кэширование не выполняется, как в .NET.