.NET管理设置组

时间:2011-04-07 12:19:17

标签: .net winforms controls settings

我已经创建了一个WinForm控件,它使用私有属性负责自己的布局。

每个表单上都有一些控件,当包含表单关闭时,我希望每个控件都保存其状态(主要是布局位置)。当然我不希望控件公开私有属性。我的第一个是在两个控件的方法中使用Properties.Settings:SaveLayout和RestoreLayout。

但随后每个控件都会覆盖以前保存的设置,因为共享了用户设置。

有没有办法可以使用某种命名前缀在设置中保存变量?

// This constructor doesn't exist
Properties.Settings setting = new Properties.Settings("control 1");
setting.edgeDistance = 100;
setting.save();

或者

Properties.Settings setting = new Properties.Settings();
setting.edgeDistance("control 1") = 100;
setting.save();

感谢。

3 个答案:

答案 0 :(得分:1)

Using Settings in C# 在本文的底部是一个标题:“使用备用设置集”。这应该给你你需要的东西

答案 1 :(得分:1)

您可以执行的一项操作是将[SettingsBindable(true)]属性添加到要保存的属性中。

这将导致控件的属性对话框中的此选项能够将属性存储在设置文件中:

enter image description here

答案 2 :(得分:0)

我想我已经使用SettingsKey属性解决了问题:

Properties.Settings setting = new Properties.Settings();
setting.SettingsKey = this.name;

谢谢!