【问题标题】:How do make user editable file of settings in a C# windows forms app如何在 C# windows 窗体应用程序中使用户可编辑的设置文件
【发布时间】:2012-01-04 15:53:36
【问题描述】:

我正在创建我的第一个 Windows 窗体应用程序,其中一个要求是有某种配置文件,客户端可以在记事本中对其进行编辑。例如,配置文件可能具有以下 XML 结构:

<languages>
  <language name="English" />
</languages>

应用程序在表单上生成语言组合框时访问文件。如果客户愿意,他可以进去添加另一个&lt;language&gt;节点。

我尝试使用带有自定义配置部分的 app.config 文件。当我发布应用程序然后安装它时,[appname]/Application Files/[appname_version]/ 文件夹中的 [appname].exe.config.deploy 文件是可编辑的,但应用程序似乎不知道编辑。换句话说,如果我添加另一个 &lt;language&gt; 节点,应用程序不会在表单上显示它。

我不确定我是否真的正确地执行了这些操作。用户应该能够编辑 config.deploy 文件吗?如果不是,正确的使用场景是什么?我回想起过去的游戏有 .ini 文件,您可以在记事本中进行编辑!

【问题讨论】:

  • 你能展示你用来创建这些可配置控件的代码吗?
  • 从技术上讲,我可以只用应用程序打包一个 .txt 或 .xml 文件,然后使用 IO 文件库来读取它。但我担心安装应用程序时,该文件也需要安装到同一个文件夹中。此外,如果用户试图编辑该文件,他们必须找到安装文件夹,该文件夹似乎位于真的奇怪的路径中,例如 Users/[User]/App_Data/strangelocation跨度>
  • @Andrey Atapin: MyConfigSection config = ConfigurationManager.GetSection("myconfig") as MyConfigSection; foreach(config.Languages 中的 LanguageElement 文件){ ddlLanguage.Items.Add(le.Name); } ,其中 MyConfigSection 是一个覆盖 System.Configuration.ConfigurationSection 的类

标签: c# winforms settings


【解决方案1】:

将您的 xml 文件添加到项目中 > 选择文件并转到属性窗口 > 构建操作作为内容 > 复制到输出目录以复制(如果更新或始终复制)。更改代码以从位于 exe 文件夹位置的 xml 文件中读取语言列表

【讨论】:

  • 程序文件目录在Windows 7中是只读的,最好放在UserData中
  • 客户端在运行setup.exe后如何知道应用程序安装在哪里,以便他可以去编辑xml文件?
  • 你可以给按钮打开xml文件进行编辑,或者在winform的某处显示位置。
  • 事情是这样的:该应用程序是为我的客户的员工捕获新用户。只有客户端必须能够编辑配置文件,而不是员工,所以我不希望它可以从应用程序内部进行编辑。您可能会问,“员工不能简单地在记事本中编辑配置文件吗?”。客户说不用担心,因为员工不是特别懂电脑,所以只有他会知道要编辑的配置文件。那么,如何告诉客户端配置文件的位置以便他可以编辑呢?
  • 为什么不在表单上提供一个界面来编辑语言?如果某些添加或删除新语言,则从 UI 中添加/删除它们到/从 xml,然后根据 XML 中包含的语言填充新列表。并在用户不是员工时显示编辑选项。如果您没有身份验证,请做一个技巧。将另一个具有任意名称的文件放在同一位置。如果该文件存在,则允许他们编辑,否则禁用它,并将此文件仅提供给客户而不提供给员工
猜你喜欢
  • 2019-11-09
  • 1970-01-01
  • 2021-07-12
  • 1970-01-01
  • 2014-11-06
相关资源
最近更新 更多