将 WinForms 设置加载到 GUI 的适当方法是什么



我正在构建一个应用程序,该应用程序具有用户可以在其中配置所有设置的表单。加载应用程序时,以前配置的设置应反映到 GUI(UI 应与保存的设置一致)。

目前正在做的是在项目属性上创建设置,我有一个LoadSettings()方法,该方法获取值并将其输出到 UI 上的每个组件。

问题是这变得非常混乱,我一点也不喜欢它。

所以,这让我想知道,什么是正确的方法来实现我想要的,但又能获得高质量的代码?有什么模式吗?

private void LoadConfigs()
        {
            checkBoxStartOnStartup.Checked = ExistKeyValue(@"SOFTWAREMicrosoftWindowsCurrentVersionRun", "Wallbase Downloader");
            checkBoxCheckWallbaseOnline.Checked = Settings.Default.CheckWallbaseOnlineStartup;
            comboBoxResolution.SelectedIndex = comboBoxResolution.FindStringExact(Settings.Default.Resolution == string.Empty 
                ? GetScreenResolution() 
                : Settings.Default.Resolution);
            comboBoxCondition.SelectedIndex = Settings.Default.ConditionIndex;
            textBoxWallpaperFolders.Text = Settings.Default.WallpaperFolder;
            numericChangeInterval.Text = Convert.ToString(Settings.Default.ChangeIntervalValue);
            comboBoxChangeInterval.SelectedIndex = Settings.Default.ChangeIntervalIndex;
            numericCheckInterval.Text = Convert.ToString(Settings.Default.CheckIntervalValue);
            comboBoxCheckInterval.SelectedIndex = Settings.Default.CheckIntervalIndex;
            numericWallpapersToLookFor.Text = Settings.Default.WallpapersToLookFor.ToString();
        }

好吧,WinForms 并不是最干净的框架......

您可以做的是在应用程序启动时加载所有设置,并将它们存储在可用于所有表单的某些存储中,例如在帮助程序设置类中的静态属性中。

然后,您可以在加载每个窗体时从每个窗体访问该静态属性,并根据设置对窗体进行所有必要的更改。

您可以使用 Hashtable 并使用英语字符串作为键,以使您的代码真正可读。然后将其序列化为退出时的文件,并在应用程序加载时反序列化。将序列化文件保存到某个公共位置,以免丢失它。

相关内容

  • 没有找到相关文章

最新更新