[C# 윈폼] C# 윈도우 어플리케이션으로 StopWatch(스톱워치) 만들기
- C#/Windows Form
- 2020. 4. 6. 01:00
안녕하세요.
오늘은 C# 윈폼으로 스톱워치 어플리케이션을 간단히 만들어 보도록 하겠습니다.
다들, 스톱워치가 무엇인지는 알거라 생각이 들기 때문에, 별도의 설명 없이 바로 윈폼 프로젝트를 만들어서 어떻게 만드는지 보여드리도록 하겠습니다.
먼저 윈폼 빈 프로젝트를 만들어 주시고, 아래와 같이 컨트롤들을 배치해 주시기 바랍니다.
윈폼 프로젝트 생성 및 컨트롤 배치
컨트롤은 크게 Label컨트롤과 Button 컨트롤 2개를 이용하여 위와 같이 디자인 하였습니다.
디자인은 사용자가 어떻게 하던지 상관 없기 때문에, 폰트 종류와 크기는 향후에 마음대로 디자인 하셔도 좋습니다.
여기까지 배치 하였다면, 추가적으로 Timer 컨트롤을 하나 더 배치해 주시기 바랍니다.
Timer 컨트롤 배치
도구 상자에서 Timer 라고 입력하시면, 위와 같이 Timer 컨트롤이 나오게 되고, 처음 생성 하였던 윈폼 프로젝트에 배치해 주시기 바랍니다.
숫자 |
컨트롤 이름 |
1 |
uiLb_Hour |
2 |
uiLb_Minute |
3 |
uiLb_Second |
4 |
uiBtn_Start |
5 |
uiBtn_Stop |
6 |
uiBtn_Reset |
7 |
timer1 |
각 컨트롤의 변수 이름은 위와 같습니다.
이제 여기까지 하였다면, 바로 소스코드로 넘어가서 StopWatch가 작동 되도록 예제 코드를 작성해 보도록 하겠습니다.
소스 코드는 간단하고, 주석도 함께 달아 놓았기 때문에 별도의 설명을 따로 드리지 않겠습니다.
바로 이해하실 수 있을거라 생각합니다.
예제 코드
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 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Threading.Tasks; using System.Windows.Forms;
namespace StopWatchTest { public partial class Form1 : Form { //시, 분, 초 변수 선언 public int hours = 0; public int minutes = 0; public int seconds = 0;
public Form1() { InitializeComponent();
//Start, Stop, Reset 버튼 클릭 이벤트 선언 uiBtn_Start.Click += uiBtn_Start_Click; uiBtn_Stop.Click += uiBtn_Stop_Click; uiBtn_Reset.Click += uiBtn_Reset_Click; }
/// <summary> /// 초 증가 /// </summary> private void IncreaseSecond() { //초가 59초 초과면 if(seconds > 59) { seconds = 0; IncreaseMinute(); } else { seconds++; } }
/// <summary> /// 분 증가 /// </summary> private void IncreaseMinute() { //분이 59분 초과면 if(minutes > 59) { minutes = 0; IncreaseHour(); } else { minutes++; } }
/// <summary> /// 시간 증가 /// </summary> private void IncreaseHour() { hours++; }
public void StopWatch_Tick(object sender, EventArgs e) { ShowTime(); IncreaseSecond(); }
/// <summary> /// 시작 버튼 클릭 이벤트 핸들러 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void uiBtn_Start_Click(object sender, EventArgs e) { timer1.Enabled = true; timer1.Interval = 1000; //타이머 Tick 이벤트 timer1.Tick += StopWatch_Tick; }
/// <summary> /// 멈춤 버튼 클릭 이벤트 핸들러 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void uiBtn_Stop_Click(object sender, EventArgs e) { timer1.Enabled = false; }
/// <summary> /// 초기화 버튼 클릭 이벤트 핸들러 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> public void uiBtn_Reset_Click(object sender, EventArgs e) { //시, 분, 초 초기화 hours = 0; minutes = 0; seconds = 0;
ShowTime(); }
private void ShowTime() { uiLb_Hour.Text = hours.ToString("00"); uiLb_Minute.Text = minutes.ToString("00"); uiLb_Second.Text = seconds.ToString("00"); } } }
|
실행 결과
위와 같이 StopWatch가 잘 작동 되는 것을 확인하실 수 있습니다.
여기서 핵심은 Timer에서 Tick 이벤트 내용이므로, 해당 내용을 꼼꼼히 보시고 이해하시면서 따라하시면 되겠습니다.
글 읽어 주셔서 감사합니다.
'C# > Windows Form' 카테고리의 다른 글
[C# 윈폼] ContextMenuStrip, ToolStripMenuItem 컨트롤 사용방법 (0) | 2020.04.16 |
---|---|
[C# 윈폼] 윈폼 Label(라벨) 가운데 정렬 하는 방법 (0) | 2020.04.11 |
[C# 윈폼] C# 윈폼 이미지 불러와서 보여주기(Image Viewer 만들기) (8) | 2020.03.08 |
[C# 윈폼] PictureBox 컨트롤 더블클릭(DoubleClick) 시 이미지 확대 하기 (1) | 2020.03.04 |
[C# 윈폼] 윈폼 폼 닫기 이벤트 (Form Closed Event) 선언하는 방법 (0) | 2020.02.14 |
이 글을 공유하기