【问题标题】:How do I save settings in C#如何在 C# 中保存设置
【发布时间】:2011-01-02 23:09:54
【问题描述】:

我正在构建一个独立程序,因此该程序没有外部文件可以访问。回忆上次关闭之前窗口的大小以及窗口内某个元素的位置的最佳方法是什么?

【问题讨论】:

  • 当心 .NET 设置机制:我记得在启动时多次破坏我的应用程序,却发现它正在执行用于检索设置的代码,这意味着您可能会在程序中看到更长的启动时间。

标签: c# settings preferences


【解决方案1】:
【解决方案2】:

我会使用 .NET 提供的设置来完成,这很安静: http://msdn.microsoft.com/en-us/library/aa730869%28v=vs.80%29.aspx

【讨论】:

    【解决方案3】:

    嗯,我认为有两种选择:

    • 此外,如果您不使用外部文件,您可以将设置存储在自动生成的 .config 文件中;
    • 将值保存在注册表中;

    第一个选项查看MSDN,第二个选项查看here

    编辑:如何写入注册表:

    RegistryKey currentUser = Registry.CurrentUser;
    RegistryKey subKey = currentUser.CreateSubKey("MyTest", RegistryKeyPermissionCheck.ReadWriteSubTree);
    subKey.SetValue("WindowHeight", 1024);
    subKey.SetValue("WindowWidth", 1024);
    

    【讨论】:

    • 我更喜欢使用注册表,我试图让它成为一个独立的 exe。我似乎唯一找不到的是,如何更深入地写入注册表?您的教程和我发现的所有其他教程只写给“HKEY_Current_User”。我该如何写信,比如“HKEY_Current_User\Software”?
    • 更新了我的帖子,看例子:)
    • 我的意思是如何深入了解注册表?就像我想写信给“HKEY_Current_User\Software\companyname\program\newkey”我该怎么做?
    • 如果您的目标是编写便携式应用程序,那么写入注册表并不是完全干净/高效的。我建议使用 Application.Settings 类或编写和解析一个简单的 INI 文件,如下所述:bytes.com/topic/net/insights/797169-reading-parsing-ini-file-cGood Luck.
    • 只需在 CreateSubKey 方法中使用反斜杠即可。例如 currentUser.CreateSubKey("MyTest\\A\\B\\C\\D\\E", RegistryKeyPermissionCheck.ReadWriteSubTree) 将在必要时自动深入到注册表中创建新的子键。
    猜你喜欢
    • 2013-05-05
    • 2023-03-27
    • 1970-01-01
    • 1970-01-01
    • 2016-09-17
    • 2011-01-03
    • 2012-09-02
    • 2021-04-05
    • 1970-01-01
    相关资源
    最近更新 更多