/*
* made by so_Sal
*/
간단하게 뚝딱 텍스트 프로그램을 만들어봅시다.
기본 윈도우즈 폼 형식으로 C# 프로젝트를 만든 후
파일을 저장하기 위해 Form1.cs 기본 파일에 헤더를 넣어줍니다.
using System.IO;
1. 메뉴 만들기
2. 텍스트박스 만들기
3. 메뉴 함수 구현하기1 - Open File
4. 메뉴 함수 구현하기2 - Save File
5. 메뉴 함수 구현하기5 - Exit
1. 메뉴 만들기
디자인 모드에 들어가서
위와같이 메뉴스크립트를 만들어 주시면 아래와같이 메뉴가 생성되고
C#에서 자동으로 메뉴를 추가할 수 있게 다 만들어져있습니다.
간단히 메뉴를 넣어봅시다.
Open File / Save File / Exit
2. 텍스트박스 만들기
그리고 윈도우즈 폼 가운데 들어갈 텍스트를 담아놓을 텍스트박스 또한 넣어줍니다.
간단하게 만드는 프로그램이니 텍스트박스 변수명을 textBox1 그대로 써주도록 했습니다.
레이아웃의 ScrollBars 설정을 통해 스크롤바도 만드실 수 있습니다.
3. 메뉴 함수 구현하기1 - Open File
위 그림에서 Open File을 눌렀을 때 실행하게 하는 함수를 만들기 위해서 더블클릭을 해줍니다.
그럼 이렇게 자동으로 함수를 생성해줍니다.
OpenFileDialog OF = new OpenFileDialog(); //개체 생성
OF.DefaultExt = "*.txt"; //기본 확장자 설정
OF.Filter = "텍스트 파일 (*.txt) |*.txt|모든 파일(*.*)|*.*"; //필터
OF.FilterIndex = 1; // 1=기본확장자, 2=모든파일
if (OF.ShowDialog() == DialogResult.OK)
//대화상자의 응답이 OK라면
{
string ProgramPath = OF.FileName;
//열기한 파일의 전체 경로를 반환한다.
TextReader tr = new StreamReader(OF.FileName); //파일 읽기
textBox1.Text = tr.ReadToEnd(); //파일의 내용을 텍스트박스에 넣기
}
OpenFileDialog는 위와같이 파일을 직접 윈도우즈 폼 형식으로 가져올 수 있도록 도와주는 객체입니다.
파일을 발견했을 시 (열기를 눌렀을 시) TextReader를 통해서 내용을 읽고
앞서 만들어준 텍스트박스 (textBox1)의 내용에 추가해줍니다.
4. 메뉴 함수 구현하기2 - Save File
디자인 화면에서 OpenFile 함수를 만들었던것처럼
Save File 메뉴를 더블클릭하여 Click 이벤트 발생 시 동작하는 함수를 만들어봅니다.
string dir = "";
SaveFileDialog sfd = new SaveFileDialog();
sfd.Filter = "텍스트 파일 (*.txt) |*.txt|모든 파일(*.*)|*.*";
if (sfd.ShowDialog() == DialogResult.OK)
{
dir = sfd.FileName;
FileStream fs = new FileStream(sfd.FileName, FileMode.Create, FileAccess.Write);
StreamWriter sw = new StreamWriter(fs);
sw.WriteLine(textBox1.Text); // 파일 저장
sw.Flush();
sw.Close();
fs.Close();
}
5. 메뉴 함수 구현하기5 - Exit
private void exitToolStripMenuItem_Click(object sender, EventArgs e)
{
this.Close();
}
이건 exit 클릭 시 단순히 윈도우폼을 끄면 되는거니 this.Close() 한줄로 해결 가능합니다.
아주 간단하게 완성된 텍스트 프로그램 ^^
'Windows_ > Windows_C# & App' 카테고리의 다른 글
Windows 자료형과 MBCS와 WBCS 호환 (0) | 2014.07.24 |
---|---|
LINQ를 이용한 객체 데이터 정렬 (0) | 2014.07.24 |
C#: Thread 사용법과 프로퍼티, 예제 (0) | 2014.07.24 |
C#: Base64 Encoder/Decoder 프로그램 소스 (1) | 2014.07.24 |
C#: 반복문을 통한 동적 배경색 변경 (0) | 2014.07.24 |