티스토리 뷰

728x90

웹 브라우저에서도 그렇고 윈도우 폼에서도 사용자들이 쉽게 만나는 컨트롤 중의 하나가 체크박스(CheckBox) 입니다. 



기본적인 체크박스는 .Checked 속성에 True/False로 상태를 나타내지만 위 예제에서 CheckBox3, 5, 7은 3가지 상태를 가지는 체크박스로 .Checked 속성대신 .CheckState 속성 값을 통해서 Checked, Unchecked, Indeterminate 상태를 나타낼 수 있습니다. "Indeterminate" 상태는 Checked와 Unchecked의 중간상태라 보면 되고 위의 예제에서 CheckBox7에 해당하는 상태입니다. 3가지 상태를 가지는 체크박스를 적용하려면 .ThreeState 속성을 True로 설정해야 합니다. .ThreeState 속성이 True면 .CheckState를 통해서 상태를 확인해야 하지만 이때의 .Checked 속성에는 Checked, Indeterminate 상태인 경우 True가 됩니다.

체크박스 컨트롤은 일반적으로 사용하는 체크/언체크 컨트롤의 형태 뿐만아니라 .Appearance 속성을 "Button"으로 설정해서 버튼 형태로 표시할 수도 있습니다. 버튼이 눌러진 상태를 "Checked"로 표시하는 방식입니다. 위의 예제에서 CheckBox2, CheckBox4에 해당하며 체크박스는 .AutoSize 속성이 기본적으로 True로 버튼 스타일로 지정하면 CheckBox2와 같이 표시되는 텍스트에 딱 맞도록 버튼을 표시합니다. 버튼의 크기를 조절하고 싶다면 .AutoSize 속성을 False로 설정해야 합니다. 

체크박스 및 버튼의 스타일 조정은 .FlatStyle 속성으로 조정합니다. 체크박스 및 텍스트의 위치 조정은 .CheckAlign, .TextAlign 속성으로 지정할 수 있습니다. 체크박스의 상태 변화에 따른 처리를 수행하려면 CheckedChanged 이벤트를(3가지 상태인 경우 CheckStateChanged) 처리하면 됩니다.



라디오버튼은 체크박스와 달리 "그룹"으로 묶는 작업을 이해해야 합니다. 판넬, 그룹박스와 레이아웃 다루기를 참조하면 동일한 부모 컨트롤에 속한것이 하나의 그룹으로 묶입니다. 하나의 윈도우 폼에 그룹박스나 레이아웃을 두지 않고 여러개의 라디오버튼 컨트롤을 두었다면 모든 라디오버튼은 하나의 그룹으로 묶여서 여러 라디오버튼 중에 하나만이 선택상태(.Checked 속성이 True)가 될 수 있습니다. 그러므로 하나의 윈도우 폼에 라디오버튼 그룹을 여러개 둔다면 위의 예제 처럼 그룹박스나 판넬(Panel)로 라디오버튼들을 그룹 단위로 묶어주어야만 합니다.

라디오버튼 그룹 내에서 하나의 라디오버튼을 선택하거나 프로그램 내에서 직접 .Checked 속성을 True로 설정하면 그룹내의 나머지 라디오 버튼은 자동적으로 선택해제 됩니다. 그룹 내에서 단 하나만이 선택되므로 복합 선택을 원한다면 체크박스로 구현해야 합니다. 라디오버튼도 체크박스처럼 .Appearance 속성을 "Button"으로 설정해서 버튼 형태로 표시할 수 있습니다.

하나의 옵션을 선택받기 위해 여러 라디오버튼 컨트롤을 추가한 경우 값을 확인하기 위해서 각 컨트롤을 일일이 확인해야 하는 작업이 필요하지만 아래의 코드 예제 처럼 CheckedChanged 이벤트를 그룹내 모든 라디오컨트롤에 대해서 통합적으로 받아서 간단하게 처리할 수도 있습니다.

    Private Sub RadioButton2_CheckedChanged(sender As System.Object, e As System.EventArgs) _
            Handles RadioButton2.CheckedChanged, RadioButton3.CheckedChanged, RadioButton1.CheckedChanged
        Dim rbut As RadioButton = sender
        Label1.Text = rbut.Text
    End Sub
728x90
댓글
최근에 올라온 글
최근에 달린 댓글
«   2024/12   »
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
글 보관함