스케쥴러
2010-11-09
이창진
달력에서 날짜를 선택해 선택한 날에 메모를 달아 둘 수 있다. 투명도를 조정 할 수 있도록 하였다. (델리게이트, 유저컨트롤, 폼 컨트롤, 폼 속성 사용)
|
|
|
현재까지 진행 상황 |
|
디렉토리 생성 |
|
private void CreateDirectory() { DirectoryInfo dir = new DirectoryInfo(@"c:\"); dir.CreateSubdirectory("MyDiary"); } |
|
프로그램 초기에 디렉토리 생성 |
|
초기 설정 |
|
private void ButtonInit() { button1.Enabled = false; button2.Enabled = false; trackBar1.Minimum = 0; trackBar1.Maximum = 100; FirstDate(); } |
|
버튼들을 비활성화 시켜두고 투명 바의 범위를 지정 |
|
오늘 날짜에 보관된 데이터 불러오기 |
|
private void TodayDate() { date = DateTime.Now.ToString("yyyy-MM-dd"); path = string.Format(@"c:\MyDiary\{0}.txt", date);
try { FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8); string text = sr.ReadToEnd(); fs.Close(); textBox1.Text = text; } catch { textBox1.Text = null; } } |
|
MyDiary폴더에 보관되어 있는 초기 데이터를 불러온다 |
|
유저컨트롤 |
|
|
|
달력을 유저컨트롤로 만들었으며 날짜 선택에 대한 이벤트가 발생 했을 때 델리게이트를 이용하여 메인폼에 날짜를 넘긴다. |
|
날짜를 선택 했을 때 |
|
public delegate void DateChange(string date); public event DateChange DateChangeEvent; private void monthCalendar1_DateChanged(object sender, DateRangeEventArgs e) { DateChangeEvent(e.Start.ToShortDateString()); } |
|
오늘 날짜를 델리게이트를 이용하여 넘긴다. |
|
날짜 선택 이벤트가 발생하였을 때 |
|
diaryUserControl1.DateChangeEvent += new DiaryUserControl.DateChange(diaryUserControl1_DateChangeEvent);
delegate void GetDateChange(string date); void diaryUserControl1_DateChangeEvent(string date) { if (textBox1.InvokeRequired) { GetDateChange gdc = new GetDateChange(diaryUserControl1_DateChangeEvent); object[] obj = new object[1]; obj[0] = date; textBox1.BeginInvoke(gdc, obj); } else { try { path = string.Format(@"c:\MyDiary\{0}.txt", date); FileStream fs = new FileStream(path, FileMode.Open, FileAccess.Read); StreamReader sr = new StreamReader(fs, System.Text.Encoding.UTF8); string text = sr.ReadToEnd(); fs.Close(); textBox1.Text = text; } catch { textBox1.Text = null; } } } |
|
날짜 선택 이벤트가 발생하였을 때 날짜에 대한 데이터가 있을 경우 텍스트박스에 보여준다. |
|
저장 버튼을 눌렀을 때 |
|
private void button1_Click(object sender, EventArgs e) { byte[] msg = null; try { FileStream fs = new FileStream(path, FileMode.Create, FileAccess.Write); msg = Encoding.UTF8.GetBytes(textBox1.Text); fs.Write(msg,0,msg.Length); fs.Close(); MessageBox.Show("저장완료"); textBox1.Text = null; } catch { MessageBox.Show("오류"); } } |
|
선택된 날짜를 파일명으로 입력된 문장을 파일로 저장한다. |
|
삭제 버튼 눌렀을 때 |
|
private void button2_Click(object sender, EventArgs e) { try { textBox1.Text = null; FileInfo f = new FileInfo(path); f.Delete(); MessageBox.Show("삭제완료"); } catch { MessageBox.Show("오류"); } } |
|
선택된 경로의 파일이 존재 할 때 파일을 삭제 한다. |
|
투명도 |
|
private void trackBar1_Scroll(object sender, EventArgs e) { this.Opacity = 1-(trackBar1.Value/200.0) ; label3.Text = string.Format("{0}%", trackBar1.Value); } |
|
트랙바를 이용하여 프로그램의 투명도를 조절한다 |