ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • C# 윈폼 DateTimePicker와 Tab 컨트롤을 사용한 알람시계
    C# 2020. 8. 20. 16:16

     

    탭 컨트롤로 2개의 탭에다가 1번탭에는 DateTimePicker를 사용해서 알람을 설정하고 해제하는 기능, 2번탭에는 설정한 알람이 설정되어 있으면 알록달록하게 디스플레이 되고 현재 날짜와 시간을 출력해주는 부분이다. 설정한 알람의 시간이 현재 날짜, 시간과 일치하면 메세지 박스를 띄운다.

     

     

     

     

    dDay = 설정한 알람의 날짜 

    tTime = 설정한 알람의 시간

    myTimer = 현재 시간을 표시하기 위함

    private Timer myTimer = new Timer();
    private DateTime dDay;
    private DateTime tTime;
    private bool setAlarm;

     

     

     

     

     public Form1()
            {
                InitializeComponent();
    
                lblAlarm.ForeColor = Color.Gray;
                lblAlarmSet.ForeColor = Color.Gray;
    
                dateTimePicker2.Format = DateTimePickerFormat.Custom;
                dateTimePicker2.CustomFormat = "tt hh:mm";
    
                myTimer.Interval = 1000;
                myTimer.Tick += timer1_Tick;
                myTimer.Start();
    
                tabControl1.SelectedTab = tabPage2;
            }

    생성자 부분, 알람을 아직 설정하지 않았으니 lblAlarm과 lblAlaramSet 을 회색으로 그리고 dateTimePicker2의 포맷을 사용자가 직접 정의 한다. tt는 오전, 오후 이고 h는 시 그리고 m은 분이다. 만든 타이머가 1초마다 한번씩 호출된다. 알람을 설정하기 전에 첫 페이지는 2번탭을 보게한다.

     

    private void timer1_Tick(object sender, EventArgs e)
            {
                DateTime cTime = DateTime.Now;
                lblDate.Text = cTime.ToShortDateString();
                lblTime.Text = cTime.ToShortTimeString();
    
                if(setAlarm==true)
                {
                    if(dDay==DateTime.Today && cTime.Hour==tTime.Hour && cTime.Minute==tTime.Minute)
                    {
                        setAlarm = false;
                        MessageBox.Show("Alarm!!!!!");
                    }   
                }
            }

    interval이 1000 즉 1초마다 현재시간을 의미하는 cTime에 현재시간을 넣어준다. 이 cTime을 날짜와 시간으로 각각 나눠서 2번탭의 lblDate와 lblTime에 현재시간으로 띄워준다. 알람이 설정되어 있고, 현재 시간과 설정한 알람이 전부 일치하면 메세지박스를 띄우고 setAlarm을 false를 한다.

     

    private void button1_Click(object sender, EventArgs e)
            {
                dDay = DateTime.Parse(dateTimePicker1.Text);
                tTime = DateTime.Parse(dateTimePicker2.Text);
    
                setAlarm = true;
                lblAlarmSet.ForeColor = Color.Red;
                lblAlarm.ForeColor = Color.Blue;
                lblAlarm.Text = dDay.ToShortDateString() + " " + tTime.ToShortTimeString();
                tabControl1.SelectedTab = tabPage2;
            }
    

     

    알람설정 버튼

    타임피커1에서 날짜를 가져오고 타임피커2에서는 시간을 가져와 저장한다. 알람이 설정되었다면 알록달록하게 2번탭에 표현해주기 위해 색깔을 바꿔주고 설정한 알람의 시간을 2번탭에서 lblAlarm의 레이블에 알려준다. 알람이 설정되었는지 안되었는지는 setAlarm으로 판단한다.

     

    private void button2_Click(object sender, EventArgs e)
            {
                setAlarm = false;
                lblAlarmSet.ForeColor = Color.Gray;
                lblAlarm.ForeColor = Color.Gray;
                lblAlarm.Text = "";
                tabControl1.SelectedTab = tabPage2;
            }

    알람 해제 버튼

    setAlarm을 false그리고 2번탭 레이블들의 색깔을 다시 회색으로.

     

     

    알람 설정

    메세지 박스

     

     

     

     

     

    'C#' 카테고리의 다른 글

    C# IComparable을 이용한 List정렬  (0) 2020.08.21
    C# 숫자야구 윈폼  (0) 2020.08.20
    C# 윈폼 타이머를 이용한 스탑워치  (0) 2020.08.20
    C# 기초 정리  (0) 2020.06.25
    C# DB연동  (0) 2020.06.18
Designed by Tistory.