0

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

4

1 回答 1

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;
    }
}
于 2012-01-26T09:35:31.870 回答