오늘 소개해 드릴 포스팅은 C# 에서 어플리케이션을 만들때 디렉토리 입력창이나 각종 설정들에 대하여
마지막으로 실행했던 설정이 다음번에 다시 실행했을 때 남아있도록 해주는 기능입니다.
매번 경로나 설정을 바꿀 필요가 없다면 마지막에 설정했던 항목이 남아있는 것이 편리하겠죠. 반대로 프로그램 동작시 마다 매번 경로를 입력하든 설정 값들을 일일이 세팅을 해주어야 한다면 무척 불편한 것입니다.
실제로 일반적인 응용 프로그램들에서도 쉽게 볼수 있는 중요한 기능이기도 합니다.
자 한번 만들어 보겠습니다.
먼저 본인이 저장하고 싶은 항목을 구성해야 합니다.
저는 적당히 아래와 같은 의미로 저장을 해보겠습니다.
- string : 디렉토리 주소
- boolean : 하위폴더까지 포함 여부
- integer : 분할 개수
요렇게 각각 하나씩 3가지를 해보기로 하겠습니다.
새로 공부하시는 분은 새로운 프로젝트를 생성해주시고요. 만약 기존 프로젝트에 본 기능을 붙이실 분은 해당 프로젝트를 여신 뒤에 진행하시면 됩니다.
저는 임시로 새로운 프로젝트를 하나 만들어 보겠습니다. 그리고 위에서 말씀드린 내용을 설정하고 저장해보기 위한 간단한 UI 를 추가했습니다.
그 다음 비주얼 스튜디오 오측 솔루션 탐색기에서 현재 프로젝트의 프라퍼티 쪽을 확인해 주세요.
프라퍼티 하위에 Settings.settings 라는 항목이 보이시나요?
해당 항목을 더블클릭해 줍니다.
그럼 위와 같은 데이터 입력 창이 나오는데요. 제일 좌측은 해당 값의 변수가 될 이름,
두번째는 데이터의 형식이며 드롭다운 메뉴를 눌러 선택이 가능합니다.
범위는 사용자로 두시면 되고 제일 우측 값 부분에 최초 저장될 값을 임시로 넣어 두면 됩니다.
저는 위의 3가지 설정을 저장할 예정이므로 위와같이 3가지 타입의 변수를 정해 주었습니다.
자 이제 Form 이 Load 될 때 이 설정 값들을 가져오도록 해보겠습니다.
먼저 UI 디자인하는 화면에서 타이틀바를 더블클릭 해주면 Form load 함수가 생성이 됩니다. 생성된 함수를 아래와 같이 작성합니다.
private void Form1_Load(object sender, EventArgs e)
{
textBox1.Text = Properties.Settings.Default.myPath;
checkBox1.Checked = Properties.Settings.Default.myCheck;
numericUpDown1.Value = Properties.Settings.Default.myNumber;
}
당연히 본인이 작성한 설정의 이름과 UI 의 이름을 이용하여 작성을 해야겠죠?
이렇게 작성한 뒤 실행해보면 아래와 같이 표시가 됩니다.
위에 settings 에서 입력했던 값이 그대로 표시가 되고 있지요?
이제 해당 값을 변경한뒤에 저장하는 부분을 만들면 됩니다.
저는 일단 버튼을 누를때 현재 각 메뉴에 설정되어 있는 값을 저장하는 것으로 해보겠습니다.
private void button1_Click(object sender, EventArgs e)
{
Properties.Settings.Default.myPath = textBox1.Text;
Properties.Settings.Default.myCheck = checkBox1.Checked;
Properties.Settings.Default.myNumber =Convert.ToInt32(numericUpDown1.Value);
Properties.Settings.Default.Save();
}
엄청 간단하죠? 불러올때와 반대로 해당 값을 설정에 입력해준 뒤 마지막 줄에 save 해주면 됩니다.
이 코드를 하나의 함수로 묶어서 핵심 기능을 수행할 때나 Form 을 종료할때 넣어주면 되겠습니다.
한번 해볼까요?
요렇게 설정을 한 뒤에 버튼을 눌러주고 껐다가 다시 실행해 보면 ?
당연한 것이지만 이렇게 다시 그상태 그대로 form 이 실행이 됩니다.
어떠신가요? 참 쉽죠?
요런 간단한 기능들이 프로그램의 사용성을 크게 높일 수 있습니다. 본인이 개발하는 유틸리티나 어플리케이션에 이러한 기능이 아직 없다면 어렵지 않고 크게 시간도 들지 않는 기능이므로 꼭 한번 넣어보시기 바랍니다.
그럼 이만~
뎃글, 공감 은 블로그 작성자에게 큰 힘이 된답니다. 도움이 되었다 생각되시면 클릭!! 부탁드려요~ |
2023.01.31 - [DEV/c#] - [c#] Resource 에 추가한 텍스트를 소스코드에서 불러오기
2020/08/11 - [DEV/c#] - [c#] streamreader 를 이용하여 정확한 라인 위치 찾기
2020/07/21 - [DEV/c#] - C# 문자열 읽어서 문자열에 해당하는 변수에 값 세팅하기
2020/06/03 - [DEV/c#] - C# .net으로 photoshop 연동하기
2020/06/29 - [DIY/Arduino] - C# 에서 아두이노로 시리얼 통신 하기
2020/05/28 - [DEV/c#] - [c#] 주어진 경로가 디렉토리인지 파일인지 확인하는 방법
'DEV > c#' 카테고리의 다른 글
[c# .net] 키움증권 API - 전체 종목 받아오기 (1) | 2021.03.31 |
---|---|
[c#] streamreader 를 이용하여 정확한 라인 위치 찾기 (10) | 2020.08.11 |
C# 문자열 읽어서 문자열에 해당하는 변수에 값 세팅하기 (0) | 2020.07.21 |
C# .net으로 photoshop 연동하기 (0) | 2020.06.03 |
[C#] .net 프로그램에서 MD5 해시 체크파일 만들기 (0) | 2020.05.29 |