Windows 窗体应用程序中的.设置文件,最佳实践

2024-04-02

我有一个 Win Form 应用程序,它将一些每个用户的设置存储在 UserSettings.Settings 文件中。到目前为止,这效果很好,但是当我发布更新时,设置文件似乎会被“重置”。我所做的ClickOnce.

这是预期的行为吗?
我可以控制设置文件中的字段是否被覆盖吗?
有没有更好的方法来存储用户设置?

Thanks


当您发布更新时,更新后的应用程序应该调用ApplicationSettingsBase.Upgrade 方法 http://msdn.microsoft.com/en-us/library/system.configuration.applicationsettingsbase.upgrade.aspx从以前的版本移动值。这是一个类似的问题:自动从以前版本的 app.config 文件“升级”用户设置? https://stackoverflow.com/questions/1198193/automatically-upgrade-user-settings-from-previous-version-of-app-config-file

请记住,您应该只调用上述方法一次,因此您可能必须在设置中存储是否已经调用过升级,并执行如下操作:

if(!Settings.Default.Upgraded)
{
   Settings.Default.Upgrade();
   Settings.Default.Upgraded = true;
   Settings.Default.Save();
}

另一种可能的解决方案是将设置存储在不依赖于应用程序版本的文件夹中。在这种情况下,您不会丢失值,也无需在版本之间升级设置。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Windows 窗体应用程序中的.设置文件,最佳实践 的相关文章

  • 让 WIX 在项目中包含引用

    我对 WiX 和设置自定义安装程序完全陌生 所以我对问题的主题表示歉意 我有一个内部业务应用程序 日记 它构建并运行良好 因此我按照教程 官方文档添加 WiX 项目并引用日记的 csproj 然后构建并运行这个最基本版本的 WiX 安装程序
  • 使用对话框周围的语句来确保垃圾收集

    我们有一个包含数千个表单的 Windows 窗体应用程序 其中许多通过 ShowDialog 方法临时显示为对话框 该应用程序已经存在多年 我们发现由于表单或其使用的控件中的各种资源泄漏 许多表单没有及时进行垃圾收集 具体来说 我们发现了未
  • 如何防止弹出表单夺走父级的焦点

    我有一个小的 windows form 当鼠标悬停在 windows Form 上的某个区域上时 我用它来显示信息 但是当它设置为可见时 它会从父窗口获取焦点 有没有办法防止这种情况 它会导致主窗体在焦点和焦点之间切换时闪烁 时间 2019
  • 从嵌入 C# 的浏览器控件获取 HTML 源代码

    我有一个嵌入在 C Windows 应用程序中的浏览器控件 我想获取渲染的 HTML 可能已被 javascript 修改 而不是原始 HTML 有什么建议么 您可以获取 HTML 并确实设置它 使用WebBrowser DocumentT
  • TreeView所有者在选择时绘制故障

    我正在尝试向标准 System Windows Forms TreeView 控件的元素添加更多图标 我的计划是只更改树视图控件的标签区域 但它显示出奇怪的行为 如果我单击一个节点来选择它 则按下鼠标按钮时 背景将使用突出显示颜色正确绘制
  • C# 如何暂停程序并等待 WinForm 中的键盘输入

    我有一个 C 2008 Winform 应用程序 我正处于循环之中 我正在向用户显示一个日期 我希望他们告诉我这个日期是星期几 例如显示6 22 2010 用户需要按t 我所困惑的是如何暂停我的应用程序并等待键盘输入 我只想回复 Esc m
  • 如何防止控件在 TableLayoutPanel 内调整大小时视觉上滞后?

    我有一个基于多个嵌套的中等复杂度的布局TableLayoutPanels 调整窗体大小会导致更深嵌套表内的控件在视觉上滞后于调整大小 首先 这使得它们看起来像是在调整表单大小时四处移动 但更糟糕的是 当它们滞后到足以离开分配的表格单元格时
  • 平滑滚动.net 表单

    您好 我正在 net 中使用表单 并且在运行时动态添加大量链接标签 我将这些链接标签添加到面板并将该面板添加到 winform 当链接标签的数量增加时 表单会显示一个自动滚动条 垂直 现在 当我使用自动滚动向下滚动时 表单在滚动时不会更新其
  • 如何让 C# 设计器编辑我的结构属性?

    我正在使用 C 创建一个具有多个自定义属性的自定义 Windows 窗体控件 这些属性之一是一个带有几个整数字段的简单结构 public struct Test public int A B Test Test Category MyCat
  • DataGridView 列中的数字文本框

    我有一个DataGridView 我想要它的第一列或任何所需的列 其中有textboxes在其中 成为NUMERIC ONLY 我目前正在使用这段代码 private void dataGridViewItems EditingContro
  • 在 C# 中选择动态创建的列表框项目

    我动态创建了一个Listbox并用一些项目填充它 在输入一个点后Textbox我想展示Listbox以便用户可以使用箭头键选择任何项目 到目前为止我已经做了所有事情 当用户在其中输入一个点时Textbox The Listbox显示 但方向
  • 无法以编程方式反序列化 SOAP 消息

    当我尝试反序列化肥皂消息时 出现以下异常 我这样做是因为我有想要在测试中重用的响应文件 我无法使用真正的服务等 因为它不适合我们拥有的测试框架的架构 Test MyUnitTestMethod failed System InvalidOp
  • 在 .NET 程序集或可执行文件中嵌入文本文件[重复]

    这个问题在这里已经有答案了 可能的重复 如何在 NET 程序集中嵌入文本文件 https stackoverflow com questions 433171 how to embed a text file in a net assemb
  • TextBox 焦点的 WinForms 事件?

    我想添加一个偶数TextBox当它有焦点时 我知道我可以用一个简单的方法来做到这一点textbox1 Focus并检查布尔值 但我不想那样做 我想这样做 this tGID Focus new System EventHandler thi
  • 我应该如何缓冲绘制的矩形以提高性能(C#/.NET/WinForms/GDI+)

    我在做什么 我正在开发一个 C NET 4 7 2 WinForms 应用程序 它使用以下命令在表单上绘制大量填充矩形Graphics FillRectangle https learn microsoft com en us dotnet
  • 设置表单的背景颜色

    Private Sub HScrollBar1 Scroll ByVal sender As Object ByVal e As ScrollEventArgs Handles HScrollBar1 Scroll Me BackColor
  • 从 Form2 访问 Form1 控件

    有两个表单 Form1和Form2 Form1有一个按钮 btnNew 单击时打开Form2 并且被禁用 我需要再次启用该按钮 只有当Form2关闭时 用户也需要同时使用Form1 这段代码不再启用该按钮 我哪里失踪了 在表格1中 priv
  • 项目:为了评估索引属性,该属性必须经过限定,并且参数必须由用户显式提供。

    我创建了多个组合框 从中我从创建的存储过程中提取了每个组合框的数据 所有这些框一直工作到今天早些时候 其中 2 个组合框停止工作 检查行的 立即窗口 和列 我得到了列的结果 但是当我检查列时 例如 dsContactTitles Table
  • 有没有办法禁用 .NET 标签的“双击复制”功能?

    这真的很烦人 我使用标签作为列表项用户控件的一部分 用户可以单击它来选择列表项 然后双击它来重命名它 但是 如果剪贴板中有名称 双击标签会将其替换为标签文本 我还检查了应用程序中的其他标签 双击它们也会将其复制到剪贴板 我没有在这个程序中编
  • 即使进程确实存在,为什么 Process.WaitForExit 也会抛出“无进程”异常?

    我有一个包含以下代码的 Windows 服务 public static void ExtractTextInner string source string destination ProcessStartInfo startInfo n

随机推荐

  • 是否有用于平面度测试的在线算法?

    我知道平面度测试 http en wikipedia org wiki Planarity testing可以在 O v 相当于 O e 因为平面图有 O v 条边 时间内完成 我想知道是否可以在 O 1 摊销时间内在线完成 因为添加每个边
  • 在 MySQL 中使用 NoSQL

    我注意到 MySQL 可以将 Memcached NoSQL 与 InnoDB 结合使用 但我无法检索有关如何使用它的信息 我想与 PHP 一起使用 NoSQL 查询是标准的吗 首先 MySQL从5 6版本开始只支持NoSQL的memcac
  • 在 Django 中创建时将用户添加到组

    仅当创建用户后将该用户的字段指定为 True 时 我才希望将用户添加到组中 创建的每个用户都会有一个与之关联的 用户配置文件 这是实现这样的事情的正确方法吗 模型 py def add group sender instance creat
  • npm run build 不使用代理

    我有一个正在运行的react js应用程序 它使用npm start 使用create react app构建的应用程序 运行 当我尝试运行 npm run build 时 它会构建应用程序 我用它来服务 serve s build l 3
  • LIKE 条件中的多个字符串 - Presto SQL

    我想使用查询表中的列LIKE条件 这工作正常 select from my table where my column LIKE hello 但是 如何在我的数据库中使用多个字符串查询此列LIKE健康 状况 寻找类似的东西 select f
  • Flash 安全错误 #2048:是否有解决方法,或者 Twilio 是否必须更改其元策略?

    我的 Flash Flex 应用程序出现问题 几个月来 它可以从 Twilio 下载文件 但现在我收到以下错误 我不得不删除超链接 所以想象 ttp 实际上是 http 安全错误事件 类型 安全错误 气泡 false 可取消 假事件阶段 2
  • Bash 将 Curl 结果存储到数组中

    我正在运行以下curl命令 results curl USERNAME PASSWORD URL search dates dateFields created from Three Months Ago today repos gener
  • jenkins maven setPerCoreThreadCount

    詹金斯版本 1 538 使用 Maven 3 1 0 工作得很好 使用 Maven 3 2 1 会出现以下错误 Jenkins自己安装了Maven 3 2 1 从Apache下载并解压 怎么了 Parsing POMs maven31 ag
  • Java 中哪个重载会被选择为 null?

    如果我用 Java 写下这一行 JOptionPane showInputDialog null Write something 将调用哪个方法 showInputDialog Component parent Object message
  • 一个可选参数,不需要位置参数

    我有一个关于 python argparse 的问题 是否可以有一个不需要位置参数的可选参数 Example parser add argument lat help latitude parser add argument lon hel
  • 在 IntelliJ 中的 Java 早期访问版本中启用“预览”功能

    不幸的是 即使是 IntelliJ 的最新早期访问版本通常也不支持 Java 的早期访问版本 例如 我正在尝试使用Intellij 2022 1 1预览版 终极版 与实验构建 https jdk java net loom of 织机计划
  • javassist.CannotCompileException: [源错误] ) 丢失了这是什么?

    我现在尝试在我的 Web 应用程序中编写一些字节码操作 当我尝试将代码注入到我的方法中时 它总是会抛出错误 javassist CannotCompileException 源错误 丢失 我不知道为什么以及这是什么 我用谷歌搜索了一下 有些
  • 将视频保存到 Android 的 MediaStore 时设置文件名和扩展名

    我需要一些非常简单的东西 我有一个我的应用程序录制的 mp4 文件 我想将其插入 MediaStore 到用户的视频收藏中 这是我的代码 包括处理新的作用域存储的推荐方法 fileToExpose is in internal storag
  • 如何使用 Java 通过 Selenium WebDriver 获取父级 HTML 标签 [重复]

    这个问题在这里已经有答案了 我有一个测试来搜索 span class legend 在上一个级别上 我有一个包含多个值的字段集 这是我的问题 我没有得到该字段集的定位器 首先我得到一个包含所有内容的列表class legend对象 List
  • SSH 每次都会询问密码

    我的私钥有一个恼人的问题 每次我想要clone or push通过终端或 Tower 应用程序中的 ssh 我必须输入我的密码 我什至删除并重新创建了 ssh 密钥 并在 Github 上设置了几次密钥 但看起来它的生命周期很短 几分钟后就
  • 在 IIS 7.5 中增加 php max_execution_time

    我试图增加在 IIS 7 5 Windows Server 2012 上运行的 PHP 5 5 的 max execution time 值 无论我尝试什么 phpinfo 显示 max execution time 300 一些 Inte
  • Firebase Cloud Messaging - 向所有用户发送消息

    我是 Firebase 云消息的新手 我构建了一个 IOS 应用程序来接收推送通知 该应用程序运行良好 我从 Firebase 控制台发送消息 并且它们显示正确 现在我正在尝试构建一个 Web api 以允许我的客户发送推送消息 无需访问
  • 林克地图!或收藏!

    Linq 相当于什么地图 或收集 http www ruby doc org core classes Array html M002213Ruby 中的方法 a a b c d a collect x x a gt a b c d I c
  • 在 IIS 6 默认网站属性(ASP.NET 选项卡)中将 ASP.NET 版本设置为 3.5

    如何在 IIS 6 默认网站属性 ASP NET 选项卡 中将 ASP NET 版本设置为 3 5 从我所看到的是版本 2 即使我安装了 NET 3 5 版本 您无法在 IIS 中指定此项 对于 Framework 4 0 之前和 2 0
  • Windows 窗体应用程序中的.设置文件,最佳实践

    我有一个 Win Form 应用程序 它将一些每个用户的设置存储在 UserSettings Settings 文件中 到目前为止 这效果很好 但是当我发布更新时 设置文件似乎会被 重置 我所做的ClickOnce 这是预期的行为吗 我可以