создавать и сохранять значения настроек во время выполнения - PullRequest
0 голосов
/ 26 января 2012

Я использую 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 Ответ

1 голос
/ 26 января 2012

Используйте встроенные настройки.В 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;
    }
}
...