본문 바로가기
Study/C#(Window programming)

c#기초(radio button)

by Answer Choi 2015. 7. 21.
반응형

라디오버튼  예제



이번에는 저번에 했던 소스에 라디오 버튼을 추가해 보겠습니다.


먼저 변화된 디자인을 보겠습니다.



왼쪽이 새로운 디자인이고 오른쪽은 그 전 디자인입니다.


버튼 클릭카운터 하는부분은 빼고, 타이머 모드와 카운터 모드라는 라디오 버튼을 추가했습니다.


코드를 보시면 라디오 버튼 선택에 따른 변수 하나를 추가했습니다.

1
Boolean timermode = true;
cs

'timermode'가 true이면 '타이머 모드', false 이면 '카운터 모드'가 됩니다.


다음으로 라디오 버튼 클릭했을때의 동작입니다.


일단 라디오 버튼은 타이머가 동작하지 않을때에만 선택할 수 있도록 하는게 좋겠죠?

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
  private void radioButton1_CheckedChanged(object sender, EventArgs e)
        {
            if (timerCount == 0)
            {
               
                timermode = true;
                
                timer_init();
            }
           
            
            
        }
 
        private void radioButton2_CheckedChanged(object sender, EventArgs e)
        {
            if(timerCount==0)
            {
                
                timermode = false;
                
                timer_init();
 
            }
            
            
        }
cs


Line 1~13은 '타이어 모드' 버튼이고, 15~27은 '카운터 모드' 버튼입니다.


둘다 'timerCout'가 0일때 즉, 타이머가 동작하지 않을때 모드를 바꾸도록 했습니다.


또한 Line 8과 line 22에 보면 'timer_init();'이 있는데 이 부분이 설정을 바꿔주는 부분입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
        private void timer_init()
        {
            timerCount = 0;
            if (timermode == true)
            {
                
                timerText.Text = "00:00:00";
                label2.Text = "타이머 테스트";
            }
                
            else
            {
               
                timerText.Text = "0";
                label2.Text = "카운터 테스트";
            }
                
 
        }
cs


바로 여기인데요, 각 모드에 맞게 텍스트를 뿌려주고, 카운트 변수도 초기화 해줍니다.


타이머 뿌려주는 부분도 카운터 모드에 맞게 추가되었습니다.


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
        private void timer_display(object sender, EventArgs e)
        {
            timerCount++;
            if(timermode==true)
            {
                
                int sec = 0, min = 0, hour = 0;
                if (timerCount < 60)
                {
                    sec = timerCount;
                }
 
                else if (timerCount < 3600)
                {
                    min = timerCount / 60;
                    sec = timerCount % 60;
                }
                else
                {
                    hour = timerCount / 3600;
                    min = (timerCount % 3600/ 60;
                    sec = ((timerCount % 3600) % 60);
                }
 
                timerText.Text = hour.ToString("00"+ ":" + min.ToString("00"+ ":" + sec.ToString("00");
 
 
            }
            else
            {
                timerText.Text = timerCount.ToString();
 
            }
            
        }
cs


Line 28까지는 기존의 타이머용 디스플레이 코드이고, Line 29~33은 카운터용 코드입니다.


그리고, 타이머가 동작할 때 라디오 버튼을 비활성화하고, 동작하지 않을때 활성화 시켜야 하는데,


이 코드는 타이머 시작과 종료때 넣었습니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
        private void button1_Click(object sender, EventArgs e)
        {
            timer1.Start();
            textBox1.Text = "테스트를 시작합니다.";
            radioButton1.Enabled = false;
            radioButton2.Enabled = false;
        }
 
        private void button2_Click(object sender, EventArgs e)
        {
            timer1.Stop();
            textBox1.Text = "테스트를 종료합니다.";
            radioButton1.Enabled = true;
            radioButton2.Enabled = true;
            timer_init();
            
        }
cs


Line 5~6에 타이머 시작시 라디오 버튼 비활성화, Line 13~14에 타이머 종료시 라디오 버튼 활성화 코드를 넣었습니다.


이제 실제로 동작시켜 보겠습니다.



처음 실행화면 요런 화면이 나옵니다.



타이머를 시작시키면 라디오 버튼이 비 활성화 됩니다.


종료하면 다시 활성화가 됩니다.


이번에는 카운터 모드로 변경한 후 


시작



역시 비 활성화가 됩니다.


그리고 마지막으로 중요한 한가지!!


테스트 모드라고 적혀진 컨테이너에서 그룹박스를 만들어 줘야 합니다.


그래야 라디오 버튼이 하나로 묶입니다.^^





반응형

'Study > C#(Window programming)' 카테고리의 다른 글

C# Tip (디버깅중 코드 수정하기)  (0) 2015.07.24
C#기초(리스트 뷰)  (0) 2015.07.23
C#기초(check box)  (0) 2015.07.22
C#기초(타이머)  (0) 2015.07.20
C# 기초(버튼)  (4) 2015.07.17

인기글