을 읽고 기본 응용 프로그램 설정에서는 C#
-
09-06-2019 - |
문제
가의 수를 응용 프로그램 설정(사용자의 범위)에 대한 내용 그리드 제어합니다.그들의 대부분은 컬러 설정이 있습니다.나는 형태로 사용자가 사용자 정의할 수 있 이러한 색상을 추가하고 싶은 버튼으로 색상을 사용자 정의 할 수 있습니다.나는 어떻게 읽고 기본 설정은?
예를 들어:
- 나는 사용자 설정하라는 이름
CellBackgroundColor
에Properties.Settings
. - 에서 설계 시간을 내가 값을 설정
CellBackgroundColor
하기Color.White
사용됩니다. - 사용자 설정
CellBackgroundColor
하기Color.Black
내 프로그램입니다. - 나는 설정을 저장과
Properties.Settings.Default.Save()
. - 에서 사용자를 클릭
Restore Default Colors
단추입니다.
지금 Properties.Settings.Default.CellBackgroundColor
환 Color.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 용할 수 있는 방법에 도움이 이 상황:
에서 사용됩니다.
다시와 대조에서 재설정하는 이전 로드의 마지막 세트 저장 응용 프로그램 설정 값 반면에 후자의 로드 저장 기본값으로 되돌릴 수 있습니다.
그래서 사용법이 될 것이다:
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);
}
}
}
}