내 winform에는 일부 DataGridviews를 분리하기위한 일부 Splitter가 있는데, splitter 위치를 user.config에 저장 (및 복구) 할 수있는 방법이 있습니까?C#은 user.config에 여러 개의 스플리터 위치를 저장합니다.
가능한 경우 각 스플리터에 다른 이름으로 설정을 추가하지 마십시오. 사전
내 winform에는 일부 DataGridviews를 분리하기위한 일부 Splitter가 있는데, splitter 위치를 user.config에 저장 (및 복구) 할 수있는 방법이 있습니까?C#은 user.config에 여러 개의 스플리터 위치를 저장합니다.
가능한 경우 각 스플리터에 다른 이름으로 설정을 추가하지 마십시오. 사전
에서
덕분에 나는 당신이 사용할 수 있습니다 뭔가를 내놓았다. 이 예제에 대한 몇 가지 :
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];
}
}
당신은 사용자 설정에 분할 위치를 저장하는 기사 User Settings Applied에서 라이브러리를 사용할 수 있습니다.
또한 양식 크기/위치 및 사용자 지정 양식 설정을 유지할 수 있습니다.
감사합니다. @Pwninstein, 시도해 보겠습니다. – ghiboz