【问题标题】:Runtime AppSettings.settings editor dialog运行时 AppSettings.settings 编辑器对话框
【发布时间】:2012-08-20 17:15:09
【问题描述】:

基本上我正在寻找这种类型的项目: http://www.codeproject.com/Articles/6160/Application-Configuration-Editor-using-the-Propert

但是对于Application Settings。你听说过吗,能给点建议吗?

基本上用例是,一旦设置,AppSettings 只能从代码中更改,如果您想手动更改任何内容,您的选项非常有限和复杂。

这个想法是允许用户使用“--config”参数运行应用程序,并允许他更改界面中类似于 Visual Studio 自己的编辑器的任何设置:

编辑:当然,在运行时唯一可编辑的列应该是值。唯一可见的应该是名称,如下所示:

【问题讨论】:

  • 所以你要应对他们更改名称、类型和范围?
  • 不,只有值。将注释留在问题的底部。请参阅:codeproject.com/KB/cs/configeditor/configeditor.jpg 这就是我想要的。
  • 你链接的代码项目有什么问题?
  • @Coding Gorilla,它旨在编辑在架构上与 AppSettings.settings 完全不同的 .exe.config 文件。在我们的项目中,我们更喜欢后者。
  • 如果我弄错了,请有人纠正我,AppSettings.settings 文件会生成一个 C# 类,该类被编译(作为默认值)到应用程序中。应用程序设置的实际设置从 .exe.config 文件(在 部分中)加载。

标签: c# .net winforms runtime appsettings


【解决方案1】:

哦,没想到,把你的ApplicationSettingsBase放到PropertyGrid.SelectedObject里面就可以编辑了。然后您只需拨打.Save() 即可保存您的设置。

就这么简单。

编辑:如果您正在构建这样的编辑器,请考虑使用.Reset() 方法添加将设置重置为默认值的按钮。默认情况下,我指的是您在 Visual Studio 的设计器编辑器中指定的值。

使用此按钮有两个主要问题:

首先,在调用.Reset() 之后,新的(默认)设置已经保存到磁盘,因此将没有明显的方式来恢复它们(如果有的话完全)。因此,请为您的用户做好准备。

其次,您需要在 PropertyGrid 上调用 .Refresh(),因为它不会刷新其字段(但是当您将光标设置到字段时,它会刷新,因此不会保存数据,它只是仍然绘制在控件上)。

另一个编辑:为了使编辑设置的过程更加用户友好,您可能希望将它们组织成组,将名称更改为更具可读性等。

不幸的是,设置对象的代码是自动生成的,这意味着您不能向该类中的属性添加任何属性。幸运的是,您可以添加这些properties programmatically

【讨论】:

  • PropertyGrid.SelectedObject = Properties.Settings.Default;
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-09-13
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多