본문 바로가기

C# Form

[C# Form] 간단한 디지털 시계

그림과 같이 간단한 디지털 시계를 WinForm으로 만들어 보자

 

lable1에 현재의 시간을 기록하게 하면 된다.

시간을 처리하기 위해 Timer 콘트롤을 사용한다.

주의할 점은 WPF에서는 Timer를 쓸 수 없고 DispatcherTimer를 쓴다는 점이다.
또, DispatcherTimer를 사용하기 위해서 using System.Windows.Threading; 를 추가해야 한다.

폰트는 디자이너에서 수정했다.

Form의 가운데에 글씨가 나타나게 하려면 Form의 ClientSize를 참조해야 한다. 또한 Label의 Size는 글자가 들어가야 나오므로 현재 시간을 넣어 주고 크기를 계산하도록 한다.

코드는 다음과 같다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
using System;
using System.Drawing;
using System.Windows.Forms;
 
namespace WinFormEx3_DClock_
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
 
            timer1.Interval = 1000;
            timer1.Enabled = true;
            timer1.Tick += Timer1_Tick;
 
            // this는 Form1을 가리킴
            this.BackColor = Color.LightSteelBlue;
            this.Text = "myDigitalClock";
 
            label1.Text = DateTime.Now.ToString();
            label1.TextAlign = ContentAlignment.MiddleCenter;
        }
 
        private void Timer1_Tick(object sender, EventArgs e)
        {
            label1.Location = new Point(this.ClientSize.Width / 2 - label1.Width / 2,
                this.ClientSize.Height / 2 - label1.Height / 2);
            label1.Text = DateTime.Now.ToString();
        }
    }
}
cs

beeeye Dmu