2014-09-29 3 views
0

가 나는의 WinForm 응용 프로그램을하고 있어요 설정, 나는이 같은, 내가 폼로드에 Settings.Default에서 값을로드하고있어, 두 개의 텍스트 상자가있는 양식을했습니다 :C# 응용 프로그램로드되지 사용자가

txtUsername.Text = Properties.Settings.Default["email_username"].ToString(); 
txtAddress.Text = Properties.Settings.Default["physical_address"].ToString(); 

및 나는 (처분) 닫을 때 양식을

Properties.Settings.Default["email_username"] = txtUsername.Text; 
Properties.Settings.Default["physical_address"] = txtAddress.Text; 
Properties.Settings.Default.Save(); 

을하고 다시 (응용 프로그램이 계속 실행), 내가 할 수있는 열 : 나는 사용자가 버튼을 클릭하면 다음과 같이 양식을 폐기 다시 Settings.Default에 다음 값을 저장하고있어 설정을 정상적으로로드하십시오. 그러나 응용 프로그램을 닫으면 양식이 다시 열립니다 (데이터가로드 될 것으로 예상 됨). 데이터가 ONE TextBox에로드되지만 다른 하나는 홀수입니다.

내가 해봤 그 다음하지만 같은 문제가 계속 발생을 유의하시기 바랍니다 :

또한
Properties.Settings.Default.email_username = txtUsername.Text; 

, 나는이 같은 문제가 발생 년대 (속성 바인딩)하지만 응용 프로그램 설정을 시도했습니다!

NB : 응용 프로그램을 디버깅 할 때 텍스트 상자 중 하나에 빈 "" 데이터가로드되지만 다른 하나에는로드되지 않는 것으로 나타났습니다!

그래서 문제가 무엇입니까? 어떻게 해결할 수 있습니까?

감사합니다.

편집 :이 양식의 캡처입니다 는 빈 필드는 다른 필드! : 같은 데이터를 가지고 있어야

https://imgur.com/bSvlk6d

EDIT2 :

내가 양식을 열리는 해요 이렇게 :

private void mnuEmailSettings_Click(object sender, EventArgs e) 
    { 
     using (var fms = new frmMailSettings()) 
     { 
      fms.ShowDialog(); 
     } 

    } 

설정에서 데이터를로드하는 코드는로드에있는 프로 시저 LoadData() 안에 있습니다. 나는 (내가 다른 프로 시저 SaveData()를 사용하고 데이터를 저장 한 후 폐기 호출하여 양식을 닫는거야.

I 데이터가 응용 프로그램의 AppDatauser.config에 존재하는 것을 발견 한 후 내가하지 '로드'로 제목을 업데이 트했습니다 이미 Settings.Default를 사용하는 경우, 문자열 키 설정을 액세스하는 대신 이름으로 설정에 액세스하려고 폴더.

+1

두 설정 모두 사용자 유형으로되어 있습니까? – Reniuz

+0

예. 모든 것은 '사용자'범위를가집니다. – donfoneseo

+0

현재 코드의 간단한 예제를 추가 할 수 있습니까? 어딘가 다른 일이 벌어 질 수도 있습니다 :) – Reniuz

답변

1

.

txtUsername.Text = Properties.Settings.Default.email_username; 
txtAddress.Text = Properties.Settings.Default.physical_address; 
0

Sorr 시간을 낭비하고 싶지만 문제를 발견했습니다.

처음에는 응용 프로그램이 데이터를 저장하지 않는다고 생각했지만 user.config을 확인한 후에 데이터가 올바르게 저장된다는 것을 알았습니다.

Program.cs의 설정으로 무언가를하고있는 것을 잊어 버렸습니다.불행하게도 코드는 버그가있어서 이제 모든 것이 작동합니다!

감사합니다.

+3

난 아직도 내 대답에 제안 된대로 키가 아니라 속성 이름으로 설정에 액세스하는 것이 좋습니다 - 훨씬 적은 오류가 발생하기 쉽습니다. –

관련 문제