2013-07-13 1 views

답변

1

에서

덕분에 나는 당신이 사용할 수 있습니다 뭔가를 내놓았다. 이 예제에 대한 몇 가지 :

  • 나는 SplitContainer을 사용,하지만 난 당신이 꽤 쉽게 적응할 수 상상 것입니다.
  • 양식의 컨트롤 목록 만 검사합니다.이 방법은 모두 SplitContainer을 선택하지 않습니다 (재귀 적으로 수행해야 할 것입니다).
  • 여기에는 string 유형의 SplitterPositions라는 사용자 설정이 있다고 가정합니다.
  • 향후 변경 사항 (예 : 컨트롤 재배치, 새 섹션 추가, 기존 섹션 제거 등)을 고려하지 않으므로이 점이 다소 취약합니다.

나는 개인적으로 내가 언급 한 문제에서 당신을 보호해야하기 때문에 (사용중인 입력에 따라, 또는 SplitContainer들) 귀하의 Splitter들에 이름을 할당하는 것이 좋습니다.

아무튼 나는 이것이 도움이되기를 바랍니다.

public Form1() 
{ 
    InitializeComponent(); 

    Closing += Form1_Closing; 

    ApplySavedSplitterData(); 
} 

void Form1_Closing(object sender, CancelEventArgs e) 
{ 
    SaveSplitterData(); 
} 

private void SaveSplitterData() 
{ 
    Settings.Default.SplitterPositions = string.Join(";", 
        Controls.OfType<SplitContainer>() 
          .Select(s => s.SplitterDistance)); 

    Settings.Default.Save(); 
} 

private void ApplySavedSplitterData() 
{ 
    if (string.IsNullOrEmpty(Settings.Default.SplitterPositions)) 
    { 
     return; 
    } 

    var positions = Settings.Default.SplitterPositions 
           .Split(';') 
           .Select(int.Parse).ToList(); 

    var splitContainers = Controls.OfType<SplitContainer>().ToList(); 

    for (var x = 0; x < positions.Count && x < splitContainers.Count; x++) 
    { 
     splitContainers[x].SplitterDistance = positions[x]; 
    } 
} 
+0

감사합니다. @Pwninstein, 시도해 보겠습니다. – ghiboz

1

당신은 사용자 설정에 분할 위치를 저장하는 기사 User Settings Applied에서 라이브러리를 사용할 수 있습니다.

또한 양식 크기/위치 및 사용자 지정 양식 설정을 유지할 수 있습니다.

관련 문제