2011-04-07 74 views
0

我创建了一个WinForm控件,它使用其私有属性负责其自己的布局。.NET管理设置组

每个表单上都有一些控件,当包含表单关闭时,我希望每个控件都保存它的状态(主要是布局位置)。当然,我不希望控件公开私有属性。我的第一个尝试是在两个控件的方法中使用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(); 

谢谢。

回答

1

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

+0

不,这将创建一个设置文件为每个控件。 – vulkanino 2011-04-07 12:52:11

0

我想我已经使用SettingsKey物业解决:

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

谢谢!

1

您可以做的其中一件事是将[SettingsBindable(true)]属性添加到要保存的属性。

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

enter image description here