在运行时创建并保留设置值

时间:2012-01-26 09:22:02

标签: c# runtime persist

我使用C#4.0,VS2010,Winforms。 我在基础表单上有一个DevExpress SplitContainerControl,我希望在运行时在用户配置文件中的派生表单中保持它SplitterPosition(int)。 我使用以下代码来获取/生成设置属性名称:

string _splitterSettingsName;
public string SplitterSettingsName {
    get {
        if (string.IsNullOrEmpty(_splitterSettingsName))
            _splitterSettingsName = GetType().Name + "splitterSettings";
        return _splitterSettingsName;
    }
    set { _splitterSettingsName = value; }
}

我需要一个代码来保持分割器位置(int值)。 感谢。

1 个答案:

答案 0 :(得分:1)

使用内置设置。在visual studio中打开MyProject - >属性 - > Settings.Settings。创建用户范围(因此可以在运行时编辑)设置。 然后,您可以在代码中将该设置作为属性访问:

Properties.Default.Settings.MySettingName = _splitterPosition;

反之亦然。

<强>更新

正如我的评论所述,我建议不要使用动态名称。但是,我会告诉您如何实现动态命名设置。您将需要创建一个继承自System.Configuration.ApplicationSettingsBase的类,并实现一个接受字符串参数的方法,然后将其传递给内部索引器。类似的东西:

public sealed class MySettings : ApplicationSettingsBase
{
    public int GetSplitterPos(string splitterName)
    {
        return ((int)(this[splitterName]));
    }
    public void SetSplitterPos(string splitterName, int pos)
    {
        this[splitterName] = pos;
    }
}