2012-01-26 5 views
0

C# 4.0, VS2010, Winforms를 사용합니다. DevExpress SplitContainerControl을 기본 폼에 가지고 있는데 런타임에 사용자 설정 파일의 파생 형식 인 SplitterPosition (int)을 유지하고 싶습니다. 내가 얻을 수있는 다음 코드를 사용하여/설정 속성 이름 생성 : 나는 스플리터 위치 (int 값)을 유지하기 위해 코드가 필요런타임에 설정 값을 생성하고 유지합니다.

string _splitterSettingsName; 
public string SplitterSettingsName { 
    get { 
     if (string.IsNullOrEmpty(_splitterSettingsName)) 
      _splitterSettingsName = GetType().Name + "splitterSettings"; 
     return _splitterSettingsName; 
    } 
    set { _splitterSettingsName = value; } 
} 

합니다. 감사합니다. .

답변

1

기본 설정을 사용하십시오. 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; 
    } 
} 
+0

스플리터가 기본 폼에 있으면 설정 속성 이름이 처음 파생 된 폼이로드 될 때 동적으로 생성됩니다. – user1104916

+0

지속 코드는 기본 폼으로 이동해야하며 설정 속성 이름은 파생 된 폼에서 동적으로 생성됩니다. – user1104916

+0

동적으로 설정 이름을 생성하는 이유는 무엇입니까? 특히 스플리터 컨트롤과 같은 것입니다. 난 강력하게 권 해드립니다 수동으로, 동적으로 생성하는 이름을 엉망으로 얻을 수 있습니다. –

관련 문제