2012-11-26 2 views
0

winforms를 사용하고 있으며 사용자가 변경할 때 양식의 바탕 화면 위치 및 크기를 저장하려고합니다. 유용한 코드를 찾아 이벤트를 닫는 폼에 넣고 폼을로드하고 저장하여 크기와 위치를로드합니다.양식 데스크탑 위치 및 크기 저장

그러나 사용자가 프로그램을 닫지 않고 직접 PC를 종료하면 변경된 크기와 위치가 저장되지 않습니다.

따라서 크기가 변경되고 위치가 변경된 이벤트에서 동일한 코드를 사용했지만 프로그램이 다시 시작될 때 크기와 위치가 변경되지 않습니다.

private void frmScopeStatus_SizeChanged(object sender, EventArgs e) 
{ 
    Application.UserAppDataRegistry.SetValue("WindowState", this.WindowState); 
    Application.UserAppDataRegistry.SetValue("WindowSizeH", this.Size.Height); 
    Application.UserAppDataRegistry.SetValue("WindowSizeW", this.Size.Width); 
    Application.UserAppDataRegistry.SetValue("LocationX", this.DesktopLocation.X); 
    Application.UserAppDataRegistry.SetValue("LocationY", this.DesktopLocation.Y); 
} 

private void frmScopeStatus_LocationChanged(object sender, EventArgs e) 
{ 
    Application.UserAppDataRegistry.SetValue("WindowState", this.WindowState); 
    Application.UserAppDataRegistry.SetValue("WindowSizeH", this.Size.Height); 
    Application.UserAppDataRegistry.SetValue("WindowSizeW", this.Size.Width); 
    Application.UserAppDataRegistry.SetValue("LocationX", this.DesktopLocation.X); 
    Application.UserAppDataRegistry.SetValue("LocationY", this.DesktopLocation.Y); 
} 
+1

나중에 참조 할 수 있도록 : 쉼표, 마침표 또는 단락이없는 텍스트 벽을 게시하지 마십시오. 읽기 쉽도록 텍스트를 구성하십시오. –

답변

3

이러한 값을 저장하는 User 범위의 응용 프로그램 설정을 데이터 바인딩을 제공 할 수 있습니다.

  • 이동이 속성을 Data > (Application Settins) 그룹
  • 변경 속성 저장 FormClosing 이벤트에 Location (및 ClientSize) 부동산 (범위 사용자)
  • 에 대한 databining 추가를 형성하기 위해 디자이너
  • 에서 폼을 엽니 다 Properties.Settings.Default.Save();

사용자가있는 응용 프로그램 파일의 각 사용자 (%SYSTEMDRIVE%/Users/{username}/AppData/Local/CompanyName/AppName)를 만듭니다. 응용 프로그램이 시작될 때 적용되는 설정은 :

<?xml version="1.0" encoding="utf-8"?> 
<configuration> 
    <userSettings> 
     <AppName.Properties.Settings> 
      <setting name="FormLocation" serializeAs="String"> 
       <value>345, 234</value> 
      </setting> 
      <setting name="FormSize" serializeAs="String"> 
       <value>458, 555</value> 
      </setting> 
     </AppName.Properties.Settings> 
    </userSettings> 
</configuration> 

은 BTW 나는 FormClosed 이벤트가 응용 프로그램 설정을 저장하기위한 더 나은 생각합니다.

+0

이 전에도 양식을 사용하고 있었지만 프로그램을 닫지 않고 PC를 직접 종료 한 경우 코드가 실행되지 않으므로 양식 크기와 위치가 변경되지 않습니다. –

관련 문제