Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/313.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 应用程序。重新启动我的设置_C#_Application Restart - Fatal编程技术网

C# 应用程序。重新启动我的设置

C# 应用程序。重新启动我的设置,c#,application-restart,C#,Application Restart,我正在做一个项目(简单的电话簿)供个人使用。它有一个可定制的选项(更改表单图标、按钮图像、图片框图像等),其工作方式如下: 启动应用程序时,它会检查选择了哪个主题: private void Main_Load(object sender, EventArgs e) { Settings f2 = new Settings(); ThemeCheck(); } …其中ThemeCheck()是: void ThemeCheck() { 如果(Pr

我正在做一个项目(简单的电话簿)供个人使用。它有一个可定制的选项(更改表单图标、按钮图像、图片框图像等),其工作方式如下:

启动应用程序时,它会检查选择了哪个主题:

private void Main_Load(object sender, EventArgs e)
    {
        Settings f2 = new Settings();
        ThemeCheck();
    }
…其中ThemeCheck()是:

void ThemeCheck()
{
如果(Properties.Settings.Default.Theme==“紫色”)
{
foreach(Application.OpenForms.Cast()中的var form)
{
form.Icon=Properties.Resources.Purple;
}
Main f1=(Main)Application.OpenForms[“Main”];
设置f2=(设置)应用程序.OpenForms[“设置”];
f1.btn_Exit.Image=Properties.Resources.Exit_紫色;
}
如果(Properties.Settings.Default.Theme==“蓝色”)
{
foreach(Application.OpenForms.Cast()中的var form)
{
form.Icon=Properties.Resources.Blue;
}
Main f1=(Main)Application.OpenForms[“Main”];
设置f2=(设置)应用程序.OpenForms[“设置”];
f1.btn_Exit.Image=Properties.Resources.Exit_蓝色;
}
}
…等等,对于每种颜色(有10种不同的颜色),在这里复制整个代码太长了

尽管如此,我还是成功地更改了主题,但当我重新启动应用程序时,它会切换到一个随机主题(始终为蓝色-可能是因为它是第一个主题)

有什么办法可以处理吗?我想选择的主题被设置,即使在重新启动应用程序。基本上,如果选择紫色主题,我希望它在重启后也保持紫色

我在这里上传了完整的代码,分为两个txt文件(两种格式-主格式(Form1)和配置设置的格式(Form2)),如果有人想查看:

表格1


表单2

您需要在应用程序进程之外持久化。这可以通过应用程序设置、资源文件或某种配置文件(xml、inf)来完成

希望这能指引你

-M

什么时候调用Save()?如果您在调用Application.Start()之前从未这样做,那么您只需在不保存设置的情况下重新启动即可。当我完成配置设置时(当表单设置关闭时),我会调用Save()。我甚至还尝试了双重保存(当窗体主窗口关闭时保存),但没有成功。
void ThemeCheck()
    {
        if (Properties.Settings.Default.Theme == "Purple")
        {
            foreach (var form in Application.OpenForms.Cast<Form>())
            {
                form.Icon = Properties.Resources.Purple;
            }
            Main f1 = (Main)Application.OpenForms["Main"];
            Settings f2 = (Settings)Application.OpenForms["Settings"];
            f1.btn_Exit.Image = Properties.Resources.EXIT_purple;
        }
        if (Properties.Settings.Default.Theme == "Blue")
        {
            foreach (var form in Application.OpenForms.Cast<Form>())
            {
                form.Icon = Properties.Resources.Blue;
            }
            Main f1 = (Main)Application.OpenForms["Main"];
            Settings f2 = (Settings)Application.OpenForms["Settings"];
            f1.btn_Exit.Image = Properties.Resources.EXIT_blue;
        }
    }