문제

가의 수를 응용 프로그램 설정(사용자의 범위)에 대한 내용 그리드 제어합니다.그들의 대부분은 컬러 설정이 있습니다.나는 형태로 사용자가 사용자 정의할 수 있 이러한 색상을 추가하고 싶은 버튼으로 색상을 사용자 정의 할 수 있습니다.나는 어떻게 읽고 기본 설정은?

예를 들어:

  1. 나는 사용자 설정하라는 이름 CellBackgroundColorProperties.Settings.
  2. 에서 설계 시간을 내가 값을 설정 CellBackgroundColor 하기 Color.White 사용됩니다.
  3. 사용자 설정 CellBackgroundColor 하기 Color.Black 내 프로그램입니다.
  4. 나는 설정을 저장과 Properties.Settings.Default.Save().
  5. 에서 사용자를 클릭 Restore Default Colors 단추입니다.

지금 Properties.Settings.Default.CellBackgroundColorColor.Black.어떻게 돌아가기 Color.White?

도움이 되었습니까?

해결책

@ozgur,

Settings.Default.Properties["property"].DefaultValue // initial value from config file

예제:

string foo = Settings.Default.Foo; // Foo = "Foo" by default
Settings.Default.Foo = "Boo";
Settings.Default.Save();
string modifiedValue = Settings.Default.Foo; // modifiedValue = "Boo"
string originalValue = Settings.Default.Properties["Foo"].DefaultValue as string; // originalValue = "Foo"

다른 팁

읽기"Windows2.0 양식 프로그래밍"을 발견했는데,그것이 시작인 것 같이 2 용할 수 있는 방법에 도움이 이 상황:

ApplicationSettingsBase.다시 로드

ApplicationSettingsBase.Reset

에서 사용됩니다.

다시와 대조에서 재설정하는 이전 로드의 마지막 세트 저장 응용 프로그램 설정 값 반면에 후자의 로드 저장 기본값으로 되돌릴 수 있습니다.

그래서 사용법이 될 것이다:

Properties.Settings.Default.Reset()
Properties.Settings.Default.Reload()

Im 지 확신이 필요가 있어야 합니다 깔끔한 방법으로,그렇지 않으면 누군가는 희망을 발견한 이 유;

public static class SettingsPropertyCollectionExtensions
{
    public static T GetDefault<T>(this SettingsPropertyCollection me, string property)
    {
        string val_string = (string)Settings.Default.Properties[property].DefaultValue;

        return (T)Convert.ChangeType(val_string, typeof(T));
    }
}

사용;

var setting = Settings.Default.Properties.GetDefault<double>("MySetting");

Properties.Settings.Default.Reset() 이 모두 재설정 설정을 원래 값입니다.

나는 라운드 이 문제는 2 세트의 설정입니다.내가 사용하는 하나 Visual Studio 추가에 대한 기본적으로 현재 설정 예: Properties.Settings.Default.하지만 나 또한 추가 할 또 다른 설정 파일을 프로젝트 프로젝트"->새 항목 추가->일반->설정 파일에"및 저장소에 실제에서 기본값이,즉 Properties.DefaultSettings.Default.

나는 다음 사항을 확인하십시오 나는 절대 쓰 Properties.DefaultSettings.Default 설정에서 읽습니다.변화하는 모든 것이 다시 기본 값은 다음 경우의 설정을 현재 값을 다시 기본 값입니다.

어떻게 돌아가 색상입니다.백?

두 가지 방법으로 할 수 있는 일:

  • 저장의 복사본을 설정하기 전에 사용자를 바꾼다는 것입니다.
  • 캐시 사용자 수정된 설정이 저장 속성입니다.기 전에 설정 응용 프로그램을 닫습니다.

내가 찾는 전화 ApplicationSettingsBase.Reset 는 효과를 얻을 재설정하면 설정을 기본값으로,그러나 또한 그들을 저장 같은 시간에.

행동어가고 있었어 다시 설정하는 기본값으로만 저장하지 않다(그래서 그는 경우 사용자는 좋아하지 않았다면 기본값으로,그들은 때까지 저장한 그들이 할 수 있으로 되돌리는 그들을 돌아).

내가 쓴 방법 확장을 위한 적합한 내용:

using System;
using System.Configuration;

namespace YourApplication.Extensions
{
    public static class ExtensionsApplicationSettingsBase
    {
        public static void LoadDefaults(this ApplicationSettingsBase that)
        {
            foreach (SettingsProperty settingsProperty in that.Properties)
            {
                that[settingsProperty.Name] =
                    Convert.ChangeType(settingsProperty.DefaultValue,
                                       settingsProperty.PropertyType);
            }
        }
    }
}
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top