2012-01-26 3 views
3

콤보 상자에 몇 가지 옵션이있는 폼이 있다고 가정합니다. 이제이 프로그램의 첫 번째 실행에서 사용자는 콤보 상자에서 옵션을 선택하고 단추 클릭이나 다른 방법으로 저장했습니다. 이제 사용자가 응용 프로그램을 종료하고 두 번째로 다시 실행하면 마지막으로 저장된 선택 항목을 검색 할 수있는 방법이 있습니까?C# WinForms에서 마지막으로 저장된 값 가져 오기

즉, 콤보 상자에서 option1을 선택하고 응용 프로그램을 종료하면 의미합니다. 얼마 후 응용 프로그램을 다시 시작하면 이전 세션에서 선택했기 때문에 콤보 상자에서 option1이 선택된 것으로 표시되어야합니다.

내가 생각하는 바를 이해하길 바랍니다.

+0

가능한 중복 - http://stackoverflow.com/q/8974707/799586 –

+0

데이터베이스에 저장하거나 Windows Forms/.NET Framework의 사용자 설정 프레임 워크를 사용합니다. –

+0

데이터를 저장하는 버튼이 이미 있습니까? 그렇지 않은 경우 파일이나 데이터베이스 또는 다른 것으로 저장할 수 있습니다. 그런 다음 응용 프로그램을 시작할 때 값을 읽습니다. 이것들 중 어느 것을 시도해 보셨습니까? – musefan

답변

4

사용 Settings

// To Load (after combo box binding/population) 
private void LoadSelection() 
{ 
    int selectedIndex = 0; 

    if (int.TryParse(Properties.Settings.Default.comboBoxSelection, out selectedIndex)) 
    { 
     cbMyComboBox.SelectedIndex = selectedIndex; 
    } 
} 

// saving on button click. 
private void saveButton_Click(object sender, EventArgs e) 
{ 
    //set the new value of comboBoxSelection 
    Properties.Settings.Default.comboBoxSelection = cbMyComboBox.SelectedIndex; 

    //apply the changes to the settings file 
    Properties.Settings.Default.Save(); 
} 

here for more detail를 참조하십시오.

+0

+1. 'TryParse'는 필요하지 않습니다. 설정은 강하게 입력되므로, 단순히 문자열을 파싱하는 것에 대해 걱정하지 않고'int' 설정을 사용할 수 있습니다. –

1

값을 수동으로 저장하고 프로그램을 시작할 때 다시로드해야합니다.

Visual Studio에서 쉽게 할 수있는 방법은 Settings 클래스를 만드는 것입니다. VS에서 프로젝트를 마우스 오른쪽 버튼으로 클릭하고 새로 추가를 클릭 한 다음 "설정 파일"로 스크롤하여 추가하십시오. VS는 이름을 선택할 수있는 설정 개체에서 새 속성을 만들 수있는 UI를 보여줍니다. 내가 문자열 형식의 "ComboboxValue"라는 새로운 속성을 만들 경우

, 내가 Settings1.Default.ComboboxValue = "hello world";

으로 코드에서 참조 할 수 있습니다 여기에 MSDN을이다 :

http://msdn.microsoft.com/en-us/library/a65txexh(v=vs.100).aspx

0

당신은 설정을 추가 할 수 있습니다 프로젝트 아래의 솔루션 탐색기에서 속성 폴더 추가 리소스 "문자열"예를 들어 과 같이 "선택됨"이름을 지정하십시오.

// this is save button 
Properties.Settings.Default.selected = comboBox1.SelectedIndex; 
Properties.Settings.Default.Save(); 

// this is retrieve (use it in window_load event for example) 
comboBox1.SelectedIndex = Convert.ToInt32(Properties.Settings.Default.selected);