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

本文关键字:设置 运行时 创建 | 更新日期: 2023-09-27 18:21:39

我使用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值)。谢谢

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

使用内置设置。在visual studio中,打开MyProject->Properties->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;
    }
}