CAFE

20기 4조

[일일결과물][개인과제]WinForm With C# (스케쥴러)

작성자20기 이창진|작성시간10.11.09|조회수3,573 목록 댓글 0

스케쥴러

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);

        }

트랙바를 이용하여 프로그램의 투명도를 조절한다

 

 첨부파일 개인과제(스케쥴러).doc

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼