Download presentation
Presentation is loading. Please wait.
1
7 장 윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 7.2 대화상자(Dialog Box)
7 장 윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 7.2 대화상자(Dialog Box) 7.3 윈도우 폼 상속 7.4 MDI 응용 프로그램 7.5 예외 사항처리(Exception Handling)
2
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 (1) ListView 컨트롤
ListView 컨트롤은 ListBox 컨트롤과 같은 기능을 가지며, 사용자가 선택 할 수 있는 목록 항목을 나타낸다. ListBox 컨트롤의 기능을 확장하여 목록에 텍스트뿐만 아니라 열 머리글이나 아이콘도 나열할 수 있다. 윈도우 운영체제에서 탐색기의 우측에 있는 파일목록이 ListView 컨트롤이 사용된 프로그램이다.
3
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤
ListView 컨트롤의 View 속성는 LargeIcon, SmallIcon, Details, List, Title의 5가지 뷰 형식으로 나타낸다. Large Icon : 큰 아이콘 형식 Small Icon : 작은 아이콘 형식 Details : 자세히 보기 형식 List : 간단히 보기 형식 Title : List 형식에서 공간 격차를 넓힌 형식 ListView 컨트롤을 폼에 추가하고, 리스트 뷰를 설정하는 방법 1) 도구상자 창에서 ListView 컨트롤을 선택하여 폼 위에 배치한다. 2) 리스트 뷰를 설정하기 위하여 ColumnHeader 컬렉션 편집기와 ListViewItem 컬 렉션 편집기를 제공한다. ColumnHeader 컬렉션 편집기 ListView에 나타나는 컬럼의 제목을 작성하는 편집기 Columns 속성의 컬렉션 버튼(우측 생략 버튼(…))을 클릭하면 나타난다.
4
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 ColumnHeader 컬렉션 편집기 3) 컬럼 제목을 작성한다.
[추가] 버튼을 클릭하여 멤버 창에 하나의 ColumnHeader를 추가한 후에 Text 속성에 컬럼 제목에 표시할 문자열을 입력하고, 멤버 이름을 다른 이름 으로 바꾸고 싶으면 Name 속성을 수정한다.
5
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤
ListView 컨트롤의 View 속성을 Details로 설정하면 ColumnHeader의 제목이 다음과 같이 출력된다.
6
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 4) ListView의 항목 목록을 작성한다.
ListViewItem 컬렉션 편집기는 리스트 뷰에 나타나는 항목의 목록을 작성하 는 편집기이다. Items 속성의 컬렉션 버튼(우측 생략 버튼(…))을 클릭하면 나타난다. [추가] 버튼을 눌러서 멤버 창에 ListViewItem을 추가한 후에 Text 속 성에 항목에 표시할 이름을 입력한다.
7
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤
5) ListViewItem 컬렉션 편집기의 해당 항목에서 SubItems 속성의 컬렉션 버튼 을 클릭하여 나타나는 ListViewSubItem 컬렉션 편집기에서 [추가] 버튼을 누르 고 Text 속성에 필요한 항목의 서브 이름을 입력한다. 항목 개수만큼 반복한다. 다음은 첫 번째 항목에 속한 서브 이름을 입력한 예이다.
8
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤
6) ColumnHeader 컬렉션 편집기와 ListViewItem 컬렉션 편집기를 사용하여 리스트 뷰를 설정하면 다음과 같은 결과가 나타난다.
9
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 ListView 컨트롤의 속성 속 성 내 용 Columns
속 성 내 용 Columns 컨트롤의 컬럼 제목을 설정한다. Items 컨트롤 항목의 목록을 설정한다. Sorting SortOrder 열거형에 정의된 값에 따라 정렬한다. ㆍNone : 정렬되지 않는다. ㆍAscending : 올림 차순 정렬이다. ㆍDescending : 내림 차순 정렬이다. View View 열거형인 항목을 표시하는 값을 설정한다. 열거형 값은 LargeIcon, SmallIcon, Details, List이다. SelectedItems 선택된 항목의 컬렉션을 나타낸다. LargeImageList ListView 컨트롤에서 설정한 큰 그림의 ImageList이다. SmallImageList ListView 컨트롤에서 설정한 작은 그림의 ImageList이다. StateImageList 사용자 지정상태의 ListView 컨트롤에서 사용하는 ImageList이다.
10
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 ListView 컨트롤의 메소드 ListView 컨트롤의 이벤트
내 용 Clear 컨트롤의 모든 항목을 삭제한다. ArrangeIcons 아이콘을 정렬하는 이벤트이다 ListView 컨트롤의 이벤트 이벤트 내 용 SelectedIndexChanges SelectedIndex 속성이 바뀔 때 이벤트가 발생한다. SelectedValueChanges SelectedValue 속성이 바뀔 때 이벤트가 발생한다. AfterLabelEdit 항목의 문자 영역 편집이 끝난 후에 이벤트가 발생한다. BeforeLabelEdit 항목의 문자 영역 편집 전에 이벤트가 발생한다. ColumnClick 컬럼 헤더(제목)을 클릭하면 발생하는 이벤트이다. HeaderStype 속성이 Clickable이 되어야 이벤트가 발생한다.
11
예제 프로그램 : ListView 관련 예제 프로그램(ListView1)
윈도우 폼 응용 고급 프로그램 예제 프로그램 : ListView 관련 예제 프로그램(ListView1) ListView 컨트롤을 사용하여 컬럼의 제목과 항목의 목록을 설정하여 작성한 폼에 간단한 컴퓨터 부속 탐색기를 구현하는 프로그램 작성 1. 폼을 설계한다.
12
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)의 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값 폼
Form1 Text : ListView 컨트롤 이미지 리스트 ImageList1 <이미지 컬렉션 편집기에서 작성> 리스트 뷰 ListView1 LargeImageList : ImageList1 SmallImageList : ImageList1 StateImageList : ImageList1 레이블 Label1 Text : View 선택 Label2 Text : Sort 선택 콤보 박스 ComboBox1 Items : LargeIcon SmallIcon List Details ComboBox2 Items : Ascending Descending None
13
윈도우 폼 응용 고급 프로그램 3. ImageList 컨트롤의 속성을 설정한다.
이미지 컬렉션 편집기는 리스트 뷰에 나타나는 이미지를 작성하는 편집기이다. Images 속성의 우측 생략 버튼(…)을 선택한다. 멤버의 인덱스 파일명 C:\VB예제\icons\Computer\CDROM01 1 C:\VB예제\icons\Computer\DISK04 2 C:\VB예제\icons\Computer\KEYBOARD03 3 C:\VB예제\icons\Computer\MONITOR01 4 C:\VB예제\icons\Computer\DRIVE01
14
윈도우 폼 응용 고급 프로그램 4. ListView 컨트롤의 ColumnHeader 컬렉션 편집기와 ListViewItem 컬렉션 편집기를 이용하여 리스트 뷰를 작성한다. ListView 컨트롤의 Columns 속성을 클릭하여 ColumnHeader 컬렉션 편집기를 열고, 다음의 컬럼 제목을 작성한다. ColumnHeader 멤버 속 성 ColumnHeader1 Text : 컴퓨터 부속 Width : 120 ColumnHeader2 Text : 영문 이름
15
ListViewSubItem(SubItems 속성)
윈도우 폼 응용 고급 프로그램 5. ListView 컨트롤의 Items 속성을 클릭하여 ListViewItem 컬렉션 편집기를 열고, 다음 항목의 목록을 작성한다. ListViewItem 멤버 ListViewSubItem(SubItems 속성) ImageIndex : Text : 시디롬 Text : CDROM ImageIndex : Text : 디스켓 Text : Diskette ImageIndex : Text : 키보드 Text : Keyboard ImageIndex : Text : 모니터 Text : Monitor ImageIndex : Text : 드라이버 Text : Driver
16
6. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다.
윈도우 폼 응용 고급 프로그램 6. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다. ① ComboBox1의 이벤트 서브 프로시저 Public Class Form1 Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged '콤보 박스에서 선택한 인덱스로 뷰 형식을 선택한다. Select Case ComboBox1.Text Case "LargeIcon" ListView1.View = View.LargeIcon Case "SmallIcon" ListView1.View = View.SmallIcon Case "List" ListView1.View = View.List Case "Details" ListView1.View = View.Details End Select End Sub
17
6. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다.
윈도우 폼 응용 고급 프로그램 6. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다. ② ComboBox2의 이벤트 서브 프로시저 Private Sub ComboBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ComboBox2.SelectedIndexChanged '콤보 박스에서 선택한 인덱스로 소트 형식을 선택한다. Select Case ComboBox2.Text Case "None" ListView1.Sorting = SortOrder.None Case "Ascending" ListView1.Sorting = SortOrder.Ascending Case "Descending" ListView1.Sorting = SortOrder.Descending End Select End Sub End Class
18
윈도우 폼 응용 고급 프로그램 7. 프로젝트를 실행한다. 8. 프로젝트를 저장한다.
‘View 선택’과 ‘Sort 선택’ 콤보 박스를 선택하면 선택에 따른 결과가 나타난다. 8. 프로젝트를 저장한다. 메뉴에서 [파일] →[모두 저장(L)]을 선택하여 프로젝트를 저장한다. 프로젝트 저장 대화상자에서 이름을 “ListView1”으로, 위치를 “C:\VB예제 \chapter07”로 입력하고, [저장] 버튼을 클릭하면 프로젝트가 저장된다.
19
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 (2) TreeView 컨트롤
디스크의 파일 구조나 문서의 인덱스 항목들을 계층적인 구조로 나타낼 때 유용하며, 탐색기의 왼쪽 폴더 창에서 볼 수 있다. 버튼( - , +)을 클릭하거나, 노드(Node)를 더블클릭 하면 확장하거나 축소 할 수 있다. 이미지를 제공하는 ImageList컨트롤을 이용하여 아이콘을 표시할 수 있다.
20
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤
TreeView 컨트롤을 폼에 추가하고, 트리 노드를 설정하는 방법 도구상자 창에서 TreeView 컨트롤과 ImageList 컨트롤을 선택하 여 폼 위에 배치한다. 트리 노드에 나타내는 아이콘을 작성하기 위하여 ImageList 컨트롤을 폼에 배치하고, Images 속성을 설정한다. 이미지 컬렉션 편집기는 Images 속성의 우측 생략 버튼(…)을 선택하면 나타난다. 멤버의 인덱스 파일명 C:\VB예제\ICONS\Win95\OPENFOLD 1 C:\VB예제\ICONS\Win95\CLSDFOLD
21
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤
3) 트리 노드를 설정하기 위하여 TreeNode 편집기가 제공된다. TreeNode 편집기는 트리 노드에 나타나는 노드를 작성하는 편집기이다. TreeView 컨트롤을 활성화하고, Nodes의 속성의 우측 생략 버튼(…) 을 선택하면 나타난다. TreeNode 편집기에서 먼저 [루트 추가] 버튼을 눌러서 루트 노드를 추가 Text 속성에는 현재 노드의 이름을 입력한다. ImageIndex 속성은 실행시 노드가 선택되지 않았을 때 기본적으로 나타나는 이미지를 설정한다. SelectedImageIndex 속성은 실행시 노드가 선택되었을 때 나타나는 이미지를 설정한다.
22
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 TreeView 컨트롤의 속성 속 성 내 용 ImageIndex
속 성 내 용 ImageIndex 실행시 노드가 선택되지 않았을 때에 기본적으로 나타내는 이미지를 지정한다. SelectedImageIndex 실행시 노드가 선택되었을 때 나타내는 이미지를 지정한다. ImageList ImageList 컨트롤의 이름을 설정한다. Nodes TreeView 컨트롤에 트리노드(treeNode)를 작성한다. ShowLines 디폴트인 True로 설정되면 트리노드 사이의 점선을 표시한다. ShowPlusMinus 디폴트인 True로 설정되면 노드앞에 -, + 버튼을 표시한다. SelectNode 노드를 선택할 때나 현재 선택된 노드의 값을 구할 때 사용된다. TreeNode 열거형이며, 종류는 Text, lastNode, PreNode, NextNode 속성이 있다.
23
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 TreeView 컨트롤의 메소드 TreeView 컨트롤의 이벤트
내 용 ExpandAll 모든 트리 노드를 확장한다. CollapseAll 모든 트리 노드를 축소한다. TreeView 컨트롤의 이벤트 이벤트 내 용 AfterSelect - 트리 노드가 선택된 후에 발생하는 이벤트이다. - TreeViewEventArgs 형에 대한 이벤트 매개변수를 받게 되며, Action 속성과 Node 속성을 갖는다. ∙ Action 속성 : 이벤트를 발생시틴 유형을 얻는다. 유형은 TreeViewAction 열거형인 ByKeyboard, Collapse, Expand, ByMouse, Unknow가 있다. ∙ Node 속성 : 축소, 확장, 체크표시, 선택된 노드를 가리킨다. BeforeSelect 트리 노드가 선택되기 전에 발생하는 이벤트이다.
24
예제 프로그램 : TreeView 관련 예제 프로그램(TreeView)
윈도우 폼 응용 고급 프로그램 예제 프로그램 : TreeView 관련 예제 프로그램(TreeView) TreeView 컨트롤을 사용하여 간단한 파일 구조를 보여주는 프로그램 작성 1. 폼을 설계한다. TreeView 컨트롤의 속성 설정은 ImageList 컨트롤의 Images 속성을 설정한 후에 한다.
25
2. ImageList 컨트롤의 Images 속성을 설정한다.
윈도우 폼 응용 고급 프로그램 2. ImageList 컨트롤의 Images 속성을 설정한다. Image 컬렉션 편집기는 리스트 뷰에 나타나는 이미지를 작성하는 편집기이며, Images 속성의 우측 생략 버튼(…)을 선택하면 나타난다. 멤버의 인덱스 파일명 C:\VB예제\ICONS\Win95\OPENFOLD 1 C:\VB예제\ICONS\Win95\CLSDFOLD
26
윈도우 폼 응용 고급 프로그램 3. 객체(폼, 컨트롤)의 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값 폼
Form1 Text : TreeView 구현 이미지 리스트 ImageList1 <이미지 컬렉션 편집기에서 작성> 트리 뷰 TreeView1 ImageList : ImageList1 ImageIndex : 0 SelectedImageIndex : 1 명령 버튼 Button1 (Name) : btnCollapse Text : Collapse (Name) : btnExpand Text : Expand (Name) : btnExit Text : Exit 레이블 Label1 (Name) : lblSelect Text : BorderStyle : Fixed3D AutoSize : False
27
윈도우 폼 응용 고급 프로그램 4. TreeView 컨트롤의 Nodes 속성을 클릭하여 TreeNode 편집기를 열고, 다음 항목의 목록을 작성한다. 루트 노드 자식 노드1 자식 노드2 설정 1 Text : C ImageIndex : 0(Close 그림) SelectedImageIndex : 1(Open 그림) 2 Visual Studio.NET Text : Visual Studio.NET 3 Vb7 Text : Vb7 4 VC# Text : VC# 5 MSDN Text : MSDN 6 Microsoft.NET Text : Microsoft.NET
28
윈도우 폼 응용 고급 프로그램 TreeNode 편집기에 작성한다.
29
5. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다.
윈도우 폼 응용 고급 프로그램 5. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다. Public Class Form1 Private Sub btnCollapse_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnCollapse.Click '모든 트리 노드를 축소한다. TreeView1.CollapseAll() End Sub Private Sub btnExpand_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExpand.Click '모든 트리 노드를 확장한다. TreeView1.ExpandAll() Private Sub btnExit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnExit.Click End
30
5. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다.
윈도우 폼 응용 고급 프로그램 5. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다. Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect Dim strSelectNode As String '선택된 노드와 사용한 이벤트 유형을 출력 strSelectNode = "선택 노드 : " & TreeView1.SelectedNode.Text & _ ControlChars.CrLf strSelectNode &= "이벤트 유형 : " & e.Action.ToString lblSelect.Text = strSelectNode End Sub End Class
31
윈도우 폼 응용 고급 프로그램 6. 프로젝트를 실행한다. 7. 프로젝트를 저장한다.
[Collapse] 버튼과 [Expand] 버튼을 선택하면 선택에 따른 결과가 나타난다. 7. 프로젝트를 저장한다. 메뉴에서 [파일] →[모두 저장(L)]을 선택하여 프로젝트를 저장한다. 프로젝트 저장 대화상자에서 이름을 “TreeView”로, 위치를 “C:\VB예제 \chapter07”로 입력하고, [저장] 버튼을 클릭하면 프로젝트가 저장된다.
32
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 (3) TabControl 컨트롤
제공되는 여러 개의 탭은 다른 컨트롤의 컨테이너 역할을 하며, 제한된 공간에서 데이터를 분류하고, 표시할 수 있는 이점이 있다. 다음은 TabControl 컨트롤을 사용한 마우스 등록 정보 화면이다.
33
TabControl 컨트롤을 폼에 추가하고, 탭을 설정하는 방법
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 TabControl 컨트롤을 폼에 추가하고, 탭을 설정하는 방법 1) 도구상자 창에서 TabControl 컨트롤을 선택하여 폼 위에 배치한다. 2) TabControl 컨트롤의 TabPages 속성 우측 생략(…) 버튼을 눌러 TabPage 컬렉션 편집기를 표시한다. 두 개 이상의 탭 페이지가 필요하면 [추가] 버튼을 클릭하여 TabPage 객체를 추가한다. 3) TabPages 속성 창에서 필요한 속성을 설정한다. 4) 위의 순서 2),3)을 반복하여 진행하면 TabControl 화면을 만들 수 있다.
34
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 TabControl 컨트롤의 속성 속 성 내 용 TabPages
속 성 내 용 TabPages TabControl 컨트롤에 있는 TabPage의 컬렉션(개수 지정)이다. ImageList 이미지를 가져올 ImageList 컨트롤을 지정해 준다. MultiLine 두개 행 이상의 탭을 사용할 수 있는지의 여부를 설정한다. ㆍTrue : 여러 줄로 탭 표시를 한다. ㆍFalse : 디폴트로 한 줄을 사용한다. ShowToolTips 툴팁(도구설명)을 표시할 지의 여부를 설정한다. True로 설정되면 툴팁이 나타난다. SizeMode 탭의 크기를 조절하는 TabSizeMode 열거형이며, Normal, FillToRight, Fixed가 있다. ㆍNormal : 탭의 내용에 따라서 크기가 조절된다. ㆍFillToRight : 탭의 너비가 컨테이너의 넓이에 맞게 조절된다. ㆍFixed : 모든 탭이 같은 크기의 너비를 가진다.
35
윈도우 폼 응용 고급 프로그램 7.1 고급 윈도우 폼 컨트롤 TabControl 컨트롤의 메소드
내 용 GetTabRect 인덱스가 매개변수로 전달되며, 인덱스에 해당하는 탭의 사각형 영역을 반환한다. RemoveAll 탭 페이지 모두를 삭제한다. TabControl 컨트롤의 이벤트 이벤트 내 용 SelectedIndexChanges SelectedIndex 속성이 바뀔 때 이벤트가 발생한다.
36
예제 프로그램 : TabControl 관련 예제 프로그램(TabControl)
윈도우 폼 응용 고급 프로그램 예제 프로그램 : TabControl 관련 예제 프로그램(TabControl) TabControl을 사용한 간단한 주소록 프로그램 작성 1. 폼을 설계한다. 폼에 TabControl을 추가하고, 각각의 탭에 속성을 설정한다.
37
윈도우 폼 응용 고급 프로그램 2. 각각의 탭에 다음의 속성을 설정한다. 객체의 종류 속성 및 설정 값 1 Form1
객체 번호 객체의 종류 속성 및 설정 값 1 Form1 Text : 주소록 2 TabControl1 탭 페이지1 Text : 집 Label의 Text : 성명, 전화번호, 이메일 TextBox의 Name : txtName, TxtTel, txt 탭 페이지2 Text : 직장 Label의 Text : 전화번호, 부서 TextBox의 Name : TxtOTel, txtDept 탭 페이지3 Text : 학력 Label의 Text : 대학교, 대학원 TextBox의 Name : txtUniver, TxtGrade 3 Button1 Name : btnRun Text : 실행 4 Button2 Name : btnEnd Text : 종료 5 Label1 Name : lblResult Text : BorderStyle : Fixed3D AutoSize : False
38
3. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다.
윈도우 폼 응용 고급 프로그램 3. 코드 창을 열고, 코드(이벤트 프로시저)를 작성한다. Public Class Form1 Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click lblResult.Text = "성명 : " & txtName.Text & " 전화번호 : " & txtTel.Text _ & " 이메일: " & txt .Text & ControlChars.CrLf lblResult.Text = lblResult.Text & "직장 전화번호 : " & txtOTel.Text _ & " 부서: " & txtDept.Text & ControlChars.CrLf lblResult.Text = lblResult.Text & "대학교: " & txtUniver.Text _ & " 대학원: " & txtGrade.Text & ControlChars.CrLf End Sub Private Sub btnEnd_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEnd.Click End End Class
39
윈도우 폼 응용 고급 프로그램 4. 프로젝트를 실행한다. 5. 프로젝트를 저장한다.
값을 입력하고, [실행] 버튼을 선택하면 다음과 같은 결과가 나타난다. 5. 프로젝트를 저장한다. 메뉴에서 [파일] →[모두 저장(L)]을 선택하여 프로젝트를 저장한다. 프로젝트 저장 대화상자에서 이름을 “TabControl”로, 위치를 “C:\VB예제 \chapter07”로 입력하고, [저장] 버튼을 클릭하면 프로젝트가 저장된다.
40
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 대화상자(Dialog Box)
대화상자는 사용자와 대화하는 방식으로 간단한 데이터를 입출력하는 경우에 사용된다. 폼의 일종이지만 최대/최소화 버튼이 없다. 대화상자의 종류 및 사용하는 함수 및 컨트롤 종류 내용 및 용도 컨트롤, 함수, 명령문 사용자 정의 사용자가 폼에다 직접 작성 폼의 ShowDialog 메소드로 호출 공용 대화상자 열기, 저장, 글꼴, 색상, 인쇄 등을 다룰 수 있도록 제공되는 컨트롤 공용 대화상자 컨트롤 - OpenFileDialog 컨트롤 - SaveFileDialog 컨트롤 - FontDialog 컨트롤 - ColorDialog 컨트롤 - PrintDialog 콘트롤 메시지 사용자에게 메시지 전달 용도 - MsgBox 함수 - MessageBox 대화상자 Input 사용자가 간단한 데이터를 입력하는 용도 - InputBox 함수
41
모달 대화상자(Modal Dialog Box)
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 대화상자의 분류 동작 방식에 따라 모달 대화상자와 모덜리스 대화상자로 분류된다. 모달 대화상자(Modal Dialog Box) 열려진 대화상자를 닫기 전까지는 응용 프로그램에서 다른 작업을 할 수가 없는 대화상자이다. 예를 들면, Visual Studio.NET에서 새 프로젝트를 선택하였을 때에 나타나는 새 프로젝트 대화상자 등이다. 모덜리스 대화상자(Modeless Dialog Box) 대화상자가 열려진 상태에서도 응용 프로그램내의 다른 창으로 전환하여 다른 작업을 계속할 수가 있는 대화상자이다. 작업을 진행하면서 참조해야 할 정보들을 보거나 현재 응용 프로그램의 상태를 나타낼 경우에 주로 사용한다. 예를 들면, Visual Studio.NET 편집 메뉴의 [빠른 찾기]메뉴인 ‘찾기 및 바꾸기’ 대화상자 등이 있다.
42
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) (1) 사용자 정의 대화상자
사용자 정의 대화상자는 사용자가 폼으로 직접 작성한 대화상자이다. 이러한 대화상자를 구현하기 위해서는 새로운 윈도우 폼이 필요하다. 프로젝트 메뉴에서 폼을 추가하는 방법 1) ‘프로젝트’ 메뉴에서 ‘Windows 폼 추가(F)’ 메뉴 항목을 선택한다. 2) ‘새 항목 추가’ 대화상자에서 설치된 템플릿 창에서 ‘공통 항목’의 ‘Window Forms’을 선택한다. 하단 이름 창에서 폼 클래스 이름을 입력하고, [추가] 버튼을 눌러서 새로운 폼을 추가한다.
43
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 솔루션 탐색기에서 폼을 추가하는 방법
솔루션 탐색기에서 프로젝트를 선택한 다음 마우스의 우측 버튼을 놀러 나타나는 단축 메뉴에서 ‘추가‘ -> ‘Windows Form(F)’ 항목을 선택한다.
44
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box)
대화상자는 실행시에 크기를 변경할 수 있으며, 경계선은 고정된 단선으로 지정된다. 또한 제목 표시줄에 최대화, 최소화 버튼이 없어서 대화상자의 크기를 확대하거나 축소할 수 없다. 이와 같은 대화상자를 만들기 위해 변경해야 할 폼의 속성값 폼의 속성 속성값 FormBorderStyle FixedDialog MaximizeBox False MinimizeBox 대화상자의 표시 방법 시작 객체로 지정된 폼은 응용 프로그램이 실행될 때에 자동으로 로드 된다. 다른 폼이나 사용자가 만든 대화상자를 로드하는 경우는 프로그램 코드로 작성해 주어야 한다.
45
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box)
대화상자로 사용되는 윈도우 폼 클래스의 인스턴스를 생성한다. Dim DialogForm As New Form2() 폼 클래스의 ShowDialog() 메소드를 호출하여 모달 대화상자 방식으로, Show() 메소드를 호출하여 모덜리스 대화상자 방식으로 화면에 표시한다. 모달 대화상자가 닫힐 때 ShowDialog() 메소드는 DialogResult 열거형의 값을 리턴한다. DialogForm.ShowDialog() '모달 대화상자 로드 DialogForm.Show() '모덜리스 대화상자 로드
46
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box)
모달 대화상자에는 기본적으로 [확인]과 [취소] 두 개의 버튼을 제공한다. 버튼을 눌러서 대화상자가 닫힐 때의 상태 정보를 지정하는 속성은 DialogResult 속성이다. DialogResult 열거형 내용 맴버 이름 값 None 대화상자가 실행중인 경우 OK 1 [확인] 버튼 클릭 Cancel 2 [취소] 버튼 클릭 Abort 3 [중지] 버튼 클릭 Retry 4 [재시도] 버튼 클릭 Ignore 5 [무시] 버튼 클릭 Yes 6 [예] 버튼 클릭 No 7 [아니오] 버튼 클릭
47
예제 프로그램 : 대화상자 관련 예제 프로그램(UserDialog)
윈도우 폼 응용 고급 프로그램 예제 프로그램 : 대화상자 관련 예제 프로그램(UserDialog) 모달 및 모덜리스 대화상자 작성 프로그램 1. 폼을 설계한다. 1) 메인 폼을 설계한다 ) 모달 대화상자를 설계한다. 3) 모덜리스 대화상자를 설계한다.
48
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. [메인 폼] 객체의 종류 객체 명
속성 및 설정 값 폼 Form1 Text : 사용자 대화상자 명령 버튼 Button1 (Name) : btnModal Text : 모달 대화상자 Button2 (Name) : btnModeless Text : 모덜리스 대화상자
49
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. [모달 대화상자 폼] 객체의 종류 객체 명
속성 및 설정 값 폼 Form2 (Name) : ModalForm Text : ModalForm FormBoderStyle : FixedDialog MaxiMizeBox : False MiniMizeBox : False 레이블 Label1 Text : 메시지 입력 텍스트 박스 TextBox1 (Name) : txtMessage 명령 버튼 Button1 (Name) : btnSet Text : 확인 DialogResult : OK Button2 (Name) : btnReset Text : 취소 DialogResult : Cancel
50
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. [모덜리스 대화상자 폼] 객체의 종류
객체 명 속성 및 설정 값 폼 Form3 (Name) : ModelessForm Text : ModelessForm FormBoderStyle : FixedDialog MaxiMizeBox : False MiniMizeBox : False 레이블 Label1 Text : 메시지 입력 텍스트 박스 TextBox1 (Name) : txtMessage 명령 버튼 Button1 (Name) : btnSet Text : 확인 DialogResult : OK Button2 (Name) : btnReset Text : 취소 DialogResult : Cancel
51
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
대화상자를 화면에 불러내기 위해서는 대화상자로 사용되는 윈도우 폼 클래스(Form2, Form3)의 인스턴스를 생성해야 한다. 폼 클래스의 모달 대화상자는 ShowDialog()와 모덜리스 대화상자는 Show() 메소드를 호출하여 대화상자를 화면에 표시한다.
52
윈도우 폼 응용 고급 프로그램 ① Form1에 대한 이벤트 서브 프로시저 작성한다. Public Class Form1
Private Sub btnModal_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModal.Click Dim dlgForm1 As New ModalForm() '윈도우 폼 클래스의 인스턴스 생성 Dim NameResult = DialogResult NameResult = dlgForm1.ShowDialog() '모달 대화상자 If NameResult = DialogResult.OK Then ‘message 변수는 ModalForm 코드를 작성해야 에러가 안생김 MessageBox.Show(dlgForm1.message, "모달 대화상자") End If End Sub Private Sub btnModeless_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnModeless.Click Dim dlgForm2 As New ModelessForm() '윈도우 폼 클래스의 인스턴스 생성 dlgForm2.Show() '모덜리스 대화상자 End Class
53
윈도우 폼 응용 고급 프로그램 ② Form2에 대한 이벤트 서브 프로시저 작성한다. Public Class ModalForm
'폼과 대화상자 사이에 메시지 값 교환 Public ReadOnly Property message() As String Get Return txtMessage.Text End Get End Property End Class
54
윈도우 폼 응용 고급 프로그램 ③ Form3에 대한 이벤트 서브 프로시저 작성한다.
Public Class ModelessForm Public ReadOnly Property message() As String Get Return txtMessage.Text End Get End Property Private Sub btnSet_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSet.Click MessageBox.Show(message, "모덜리스 대화상자") End Sub Private Sub btnReset_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnReset.Click End End Class
55
윈도우 폼 응용 고급 프로그램 4. 프로젝트를 실행한다. 5. 프로젝트를 저장한다.
[모달 대화상자] 버튼을 선택하면 다음과 같은 결과가 나타난다. 5. 프로젝트를 저장한다. 메뉴에서 [파일] →[모두 저장(L)]을 선택하여 프로젝트를 저장한다. 프로젝트 저장 대화상자에서 이름을 “UserDialog”로, 위치를 “C:\VB예제 \chapter07”로 입력하고, [저장] 버튼을 클릭하면 프로젝트가 저장된다.
56
(2) 공용 대화상자 (Common Dialog Box)
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) (2) 공용 대화상자 (Common Dialog Box) 윈도우 응용 프로그램에서 많이 사용되는 기능을 갖는 대화상자를 공통 으로 사용할 수 있도록 제공되는 것이다. Visual Studio.NET이 컨트롤로 제공하는 공용 대화상자는 파일열기, 파일저장, 글꼴, 색상, 인쇄, 인쇄 미리보기, 페이지 설정의 7가지가 있다. 컨트롤 대화상자 OpenFileDialog 컨트롤 파일열기 대화상자 SaveFileDialog 컨트롤 파일저장 대화상자 FontDialog 컨트롤 글꼴 대화상자 ColorDialog 컨트롤 색상 대화상자 PrintDialog 콘트롤 인쇄 대화상자 PrintPreviewDialog 컨트롤 인쇄 미리보기 대화상자 PageSetupDialog 컨트롤 페이지 설정 대화상자
57
1) 파일열기 대화상자(OpenFileDialog 컨트롤)
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 1) 파일열기 대화상자(OpenFileDialog 컨트롤) 드라이브, 폴더, 파일이름과 확장자를 지정하여 사용자가 선택한 파일 을 여는 기능을 제공한다. 파일열기 대화상자의 예
58
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) OpenFileDialog 컨트롤의 속성 속 성 내 용
속 성 내 용 FileName 사용자가 대화상자를 통하여 선택한 파일의 경로명과 파일명을 저장한다. 취소 버튼을 눌렀을 경우에는 빈 문자열이 저장된다. Filter 사용자가 선택할 수 있는 파일의 종류를 지정한다. FilterIndex 열기 버튼을 눌렀을 때 선택된 필터의 인덱스이다. CheckFileexists 디폴트는 True이며, True인 경우에 지정한 경로에 파일이 없는 경우 오류 메시지를 출력한다. CheckedPathExists 디폴트는 True이며, True인 경우에 지정한 경로가 없는 경우 오류 메시지를 출력한다. MultiSelect True로 설정하면 다수의 파일을 선택할 수가 있다. InitialDirectory 대화상자에서 열기 버튼을 눌렀을 때 표시하는 초기 디렉토리이다. RestoreDirectory 종료 전에 현재의 디렉토리를 회복할 지의 여부를 지정한다.
59
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box)
OpenFileDialog에서 필터(Filter)의 파일 형식은 콤보 박스에 나타날 파일 형식과 특정 파일 형식을 선택할 때 사용하게 될 파일 확장자의 종류를 지정한다. 파일 확장자의 종류 지정 형식 형식에 따라 파일 확장자의 종류 지정을 다음과 같이 한다. 파일 형식 설명1|필터1|파일 형식 설명2|필터2 … OpenFileDialog.Filter = “모든 파일(*.*)|(*.*)|Text File(*.txt)|*.txt”
60
2) 파일저장 대화상자(SaveFileDialog 컨트롤)
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 2) 파일저장 대화상자(SaveFileDialog 컨트롤) SaveFileDialog 컨트롤은 드라이브, 폴더, 파일이름과 확장자를 지정하 여 사용자가 선택한 파일을 저장하는 기능을 제공한다. 파일열기 대화상자와 유사하다. SaveFileDialog 컨트롤 속성 OpenFileDialog 컨트롤의 속성과 대부분 동일하며, 저장할 파일을 처리하는 속성이 추가된다. 속 성 내 용 CreatePrompt True로 설정되면, 대화상자에 없는 파일을 입력하였을 경우에 파일을 새로 생성할지를 묻는 대화상자를 출력한다. OverWritePrompt True로 설정되면, 대화상자에 있는 파일을 선택하였을 경우에 그 파일에 새로운 내용으로 저장할지를 묻는 대화상자를 출력한다.
61
3) 글꼴 대화상자(FontDialog 컨트롤)
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 3) 글꼴 대화상자(FontDialog 컨트롤) FontDialog 컨트롤은 글꼴의 종류, 크기, 색상, 스타일 등을 선택하여 사용하는 컨트롤이다. FontDialog 컨트롤의 속성 속 성 내 용 AllowScriptChange 디폴트인 True로 설정되면, 대화상자에 스크립트 창에서 한글이나 영문으로 바꿀수 있다. Font 선택된 글꼴을 설정한다. Color 선택된 글꼴의 색상을 설정한다. MaxSize 선택된 글꼴의 최대 크기를 지정한다. MinSize 선택된 글꼴의 최소 크기를 지정한다. ShowApply 대화상자가 Apply 버튼을 포함할지를 설정한다. ShowColor 대화상자에 칼라선택창을 나타낼지를 설정한다. ShowHelp 대화상자가 Help 버튼을 표시할지를 설정한다.
62
4) 색상 대화상자(ColorDialog 컨트롤)
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 4) 색상 대화상자(ColorDialog 컨트롤) ColorDialog 컨트롤은 새로운 색상을 선택할 수 있도록 하는 컨트롤이다. ColorDialog 컨트롤의 속성 속 성 내 용 AllowFullOpen 디폴트는 True이며, 대화상자에 사용자 정의 색상을 선택할 수 있도록 지정한다. FullOpen True로 설정되면, 처음 뜨는 대화상자에 사용자 정의 색상 선택창이 나타난다. Color 사용자에 의해 선택된 색상을 설정한다. AnyColor 대화상자가 기본 색상의 집합에서 모든 색상을 표시하는 것을 설정한다. CutomerColors 대화상자에 보여주는 사용자 정의 색의 집합을 설정한다. ShowHelp 대화상자가 Help 버튼을 표시할지를 설정한다.
63
5) 인쇄 대화상자(PrintDialog 컨트롤)
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) 5) 인쇄 대화상자(PrintDialog 컨트롤) PrintDialog 컨트롤은 인쇄할 프린터, 인쇄를 위한 페이지 수, 인쇄 범위 를 선택할 수 있도록 도와주는 컨트롤이다. PrintDialog 컨트롤의 속성 속 성 내 용 AllowPrintToFile '파일로 인쇄' 체크 박스가 선택되도록 설정한다. AllowSelection ‘선택영역’ 라디오 버튼이 선택되도록 설정한다. AllowSomePages ‘페이지 지정’ 라디오 버튼이 선택되도록 설정한다. Document PrinterSettings을 얻기 위해 사용된 PrintDocument 를 설정한다. PrinterSettings 대화상자에서 수정된 프린터 세팅을 설정한다.
64
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) PrintDocument 클래스의 속성
속 성 내 용 DefaultPageSettings 문서를 위한 디폴트 페이지 세팅을 설정한다. DocumentName 문서가 출력되는 동안에 나타나는 문서이름을 설정한다. PrintController 프린트 컨트롤러를 설정한다. PrinterSettings 문서를 출력하는 프린터를 설정한다. PrinterSettings 클래스의 속성 속 성 내 용 PrintRange 인쇄 대화상자에서 설정된 인쇄 범위를 나타낸다. FromPage PrintRange 속성값이 PrintRange.SomePages인 경우에 인쇄 범위의 시작 페이지를 나타낸다. ToPage PrintRange 속성값이 PrintRange.SomePages인 경우에 인쇄 범위의 마지막 페이지를 나타낸다. PrinterName 인쇄 대화상자에서 설정된 프린터 이름을 나타낸다. Copies 인쇄 대화상자에서 설정된 인쇄 매수를 나타낸다.
65
예제 프로그램 : 공통 대화상자 예제 프로그램(OpenFileDialog1) 1. 폼을 설계한다.
윈도우 폼 응용 고급 프로그램 예제 프로그램 : 공통 대화상자 예제 프로그램(OpenFileDialog1) 1. 폼을 설계한다.
66
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값 폼
Form1 Text : 공용 대화상자 구현 명령 버튼 Button1 (Name) : btnOpen Text : 파일열기 Button2 (Name) : btnSave Text : 파일저장 Button3 (Name) : btnFont Text : 굴꼴선택 Button4 (Name) : btnColor Text : 색상선택 Button5 (Name) : btnPrint Text : 프린트선택 레이블 Label1 Text : 선택한 내용 Label2 (Name) : lblResult AutoSize : False BorderStyle : Fixed3D Text :
67
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값
파일 열기 OpenFileDialog1 Title : 파일열기 대화상자 파일 저장 SaveFileDialog1 Title : 파일저장 대화상자 글꼴 선택 FontDialog1 Maxsize : 30 색상지정 ColorDialog1 프린트설정 PrintDialog1
68
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다. 'PrintDocument 클래스의 네임스페이스
Imports System.IO Imports System.Drawing.Printing Public Class Form1 Private Sub btnOpen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnOpen.Click '파일열기 대화상자의 속성을 설정한다. With OpenFileDialog1 .InitialDirectory = "c:\" .Filter = "모든 파일(*.*)|*.*|Text File(*.txt)|*.txt" .FilterIndex = 1 .RestoreDirectory = True End With '파일열기 대화상자를 연다. OpenFileDialog1.ShowDialog() End Sub
69
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
Private Sub OpenFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles OpenFileDialog1.FileOk ‘파일열기 대화상자에서 열기 버튼을 클릭할 때 발생하는 이벤트 '지정한 파일이름을 레이블에 출력한다. lblResult.Text = "선택한 파일 : " & OpenFileDialog1.FileName End Sub Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click '파일저장 대화상자의 속성을 설정한다. With SaveFileDialog1 .InitialDirectory = "c:\" .Filter = " 모든 파일(*.*)|*.*|Text File(*.txt)|*.txt" .FilterIndex = 1 .RestoreDirectory = True End With '파일저장 대화상자를 연다. SaveFileDialog1.ShowDialog()
70
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다. '지정한 파일이름을 레이블에 출력한다.
Private Sub SaveFileDialog1_FileOk(ByVal sender As System.Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles SaveFileDialog1.FileOk '지정한 파일이름을 레이블에 출력한다. lblResult.Text = "선택된 파일 : " & SaveFileDialog1.FileName End Sub Private Sub btnFont_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnFont.Click With FontDialog '글꼴 대화상자의 속성을 설정한다. .ShowColor = True '대화상자에 칼라 창을 보여준다. .Font = lblResult.Font .Color = lblResult.ForeColor End With '글꼴 대화상자를 연다. If FontDialog1.ShowDialog() = DialogResult.OK Then lblResult.Text = "글꼴 대화상자" lblResult.Font = FontDialog1.Font lblResult.ForeColor = FontDialog1.Color End If
71
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
Private Sub btnColor_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnColor.Click With ColorDialog '색상 대화상자의 속성을 설정한다. .FullOpen = True '사용자 정의 색상 창을 보여준다. .Color = lblResult.ForeColor End With '색상 대화상자를 연다. If ColorDialog1.ShowDialog() = DialogResult.OK Then '지정한 파일이름을 레이블에 출력한다. lblResult.Text = "색상 대화상자" lblResult.ForeColor = ColorDialog1.Color End If End Sub
72
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
Private Sub btnPrint_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnPrint.Click Dim PrintDialog1 As New PrintDialog() Dim printer As New PrinterSettings() Dim printDocument1 As New PrintDocument() With PrintDialog1 .Document = printDocument1 .PrinterSettings = printer End With
73
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
If PrintDialog1.ShowDialog() = DialogResult.OK Then Dim strPrtName, strTemp As String strPrtName = "프린트이름 : " & printer.PrinterName & ControlChars.CrLf Select Case printer.PrintRange Case PrintRange.AllPages strTemp = " ALL 프린트" Case PrintRange.Selection strTemp = "프린트 선택" Case PrintRange.SomePages strTemp = printer.FromPage & "From" & printer.ToPage & "To" End Select '지정한 대화상자 이름을 레이블에 출력한다. strPrtName &= "인쇄 범위 : " & strTemp & ControlChars.CrLf strPrtName &= "인쇄 매수 : " & printer.Copies lblResult.Text = strPrtName End If End Sub End Class
74
윈도우 폼 응용 고급 프로그램 4. 프로젝트를 실행한다. 5. 프로젝트를 저장한다.
메뉴에서 [파일] →[모두 저장(L)]을 선택하여 프로젝트를 저장한다. 프로젝트 저장 대화상자에서 이름을 “OpenFileDialog1”로, 위치를 “C:\VB 예제\chapter07”로 입력하고, [저장] 버튼을 클릭하면 프로젝트가 저장된 다.
75
(3) 메시지박스(MessageBox) 대화상자
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) (3) 메시지박스(MessageBox) 대화상자 사용자에게 어떤 메시지를 전달하는데 유용하며, 사용자가 선택한 버튼 을 구분하여 값을 반환한다. 대화상자에 메시지, 명령버튼, 아이콘을 표시하며, 사용자가 선택한 명령 버튼에 따라서 그 값을 대화상자를 호출한 응용 프로그램에 리턴하는 Show 공유 메소드를 제공한다. MessageBox 대화상자의 형식 메시지 : 대화상자에 나타낼 메시지 문자열 타이틀 : 제목 표시줄에 나타낼 문자열 버튼 : 사용할 버튼의 종류 아이콘 : 메시지 박스에 나타날 아이콘 종류 디폴트 버튼 : 엔터 키를 쳤을 때 실행되는 버튼의 종류 MessageBox.Show(메시지[,타이틀][,버튼][,아이콘][,디폴트버튼])
76
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) MessageBox의 버튼 종류
메시지 박스에서는 사용하는 버튼을 지정할 수 있다. 버튼의 종류를 생성하는 필드 이름과 내용 필드 이름 대화상자에 나타나는 버튼 종류 OK 확인 OKCancle 확인, 취소 AbortRetryIgnore 취소, 재시도, 무시 YesNoCancle 예, 아니오, 취소 YesNo 예, 아니오 RetryCancle 재시도, 취소
77
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) MessageBox의 아이콘 종류
아이콘의 종류는 정보 표시 아이콘, 경고 표시 아이콘, 감탄 부호 아이콘, 물음표 아이콘의 4가지가 있다. 아이콘의 필드 이름과 내용 필드 이름 내 용 Asterisk 정보 표시 아이콘 Information Error 경고 표시 아이콘 Hand Stop Exclamation 감탄 부호 아이콘 Warning Question 물음표 아이콘
78
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) MessageBox의 기본값 버튼
버튼을 누르지 않고, 엔터 키를 쳤을 때 실행되는 버튼의 종류 사용자가 특정 버튼을 클릭하면 버튼에 상응하는 필드 이름이 사용된다. 필드 이름 내 용 DefaultButton1 디폴트 버튼으로 메시지박스의 첫 번째 버튼을 선택한다. DefaultButton2 디폴트 버튼으로 메시지박스의 두 번째 버튼을 DefaultButton3 디폴트 버튼으로 메시지박스의 세 번째 버튼을
79
윈도우 폼 응용 고급 프로그램 7.2 대화상자(Dialog Box) DialogResult 값
MessageBox 대화상자의 버튼을 눌렀을 때에 DialogResult 열거형으로 부터 DialogResult 값을 반환한다. DialogResult 열거형에 있는 필드 이름 필드 이름 내 용 Abort Abort 버튼을 눌렀을 때 Abort 값을 반환한다. Cancel Cancel 버튼을 눌렀을 때 Cancel 값을 반환한다. Ignore Ignore 버튼을 눌렀을 때 Ignore 값을 반환한다. No No 버튼을 눌렀을 때 No 값을 반환한다. None 대화상자가 실행 중에 있는 경우이다. OK OK 버튼을 눌렀을 때 OK 값을 반환한다. Retry Retry 버튼을 눌렀을 때 Retry 값을 반환한다. Yes Yes 버튼을 눌렀을 때 Yes 값을 반환한다.
80
예제 프로그램 : 메시지박스 예제 프로그램(MessageBox1)
윈도우 폼 응용 고급 프로그램 예제 프로그램 : 메시지박스 예제 프로그램(MessageBox1) 타이틀과 메시지는 TextBox로 입력받고, 버튼, 아이콘, 디폴트 버튼을 그룹 박스안에 라디오 버튼으로 작성하여 선택한 필드를 사용하여 MessageBox로 출력하는 프로그램 작성 1. 폼을 설계한다.
81
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값 폼
Form1 (Name) : frmMessageBox Text : 메시지 박스 구현 FormBorderStyle : FixedDialog MaximizeBox : False MinimizeBox : False StartPosition : CenterScreen 레이블 Label1 Text : 타이틀 Label2 Text : 메시지 텍스트 박스 TextBox1 (Name) : txtTitle , Text : ImeMode : HangulFull TextBox2 (Name) : txtMessage , Text : ImeMode : HangulFull MultiLine : True 명령 버튼 Button1 (Name) : btnRun Text : 메시지 박스 보기 그룹 박스 GroupBox1 Text : 버튼 GroupBox2 Text : 아이콘 GroupBox3 Text : 디폴트버튼
82
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값
라디오 버튼 RadioButton1 (Name) : rdbOK Text : OK RadioButton2 (Name) : rdbOKCancel Text : OKCancel RadioButton3 (Name) : rdbAbortRetryIgnore Text : AbortRetryIgnore RadioButton4 (Name) : rdbYesNoCancel Text : YesNoCancel RadioButton5 (Name) : rdbYesNo Text : YesNo RadioButton6 (Name) : rdbRetryCancel Text : RetryCancel RadioButton15 (Name) : rdbDefaultButton1 Text : DefaultButton1 RadioButton16 (Name) : rdbDefaultButton2 Text : DefaultButton2 RadioButton17 (Name) : rdbDefaultButton3 Text : DefaultButton3
83
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값
라디오 버튼 RadioButton7 (Name) : rdbAsterisk Text : Asterisk RadioButton8 (Name) : rdbInformation Text : Information RadioButton9 (Name) : rdbError Text : Error RadioButton10 (Name) : rdbHand Text : Hand RadioButton11 (Name) : rdbStop Text : Stop RadioButton12 (Name) : rdbExclamation Text : Exclamation RadioButton13 (Name) : rdbWarning Text : Warning RadioButton14 (Name) : rdbQuestion Text : Question
84
윈도우 폼 응용 고급 프로그램 2. 객체(폼, 컨트롤)에 대한 속성값을 설정한다. 객체의 종류 객체 명 속성 및 설정 값
라디오 버튼 RadioButton15 (Name) : rdbDefaultButton1 Text : DefaultButton1 Checked : True RadioButton16 (Name) : rdbDefaultButton2 Text : DefaultButton2 RadioButton17 (Name) : rdbDefaultButton3 Text : DefaultButton3
85
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저를 작성한다.
RadioButton 컨트롤 각각을 Click 이벤트로 작성하면 17개가 필요하다. 이벤트 핸들러를 아이콘 라디오 버튼, 버튼 라디오 버튼, 디폴트버튼 라디오 버튼의 컨테이너별로 3개를 만든다. 각각의 컨테이너에서 라디오 버튼이 선택된 정보를 유지하기 위하여 3개의 글로벌 변수를 선언한다. MessageBox 클래스 안에 있는 버튼, 아이콘, 디폴트버튼을 위한 필드를 선언한다. Public Class frmMessageBox Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End sub Private Sub Icon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Sub Private Sub DefaultButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) End Class
86
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저를 작성한다. Public Class frmMessageBox
포괄적인 프로시저로 라디오 버튼에 하나의 이벤트 핸들러를 추가한다. 이 방법은 라디오 버튼을 클릭하였을 때 포괄적인 이벤트 핸들러가 실행된다. 이것은 AddHandler 문장으로 구현하는데, AddressOf 연산자를 사용하여 조정한다. Public Class frmMessageBox '변수 선언 Private intIcon As MessageBoxIcon = MessageBoxIcon.Information Private intButton As MessageBoxButtons = MessageBoxButtons.YesNo Private intDefaultButton As MessageBoxDefaultButton = MessageBoxDefaultButton.Button1 End Sub Private Sub rdbOK_CheckedChanged(sender As Object, e As EventArgs) Handles rdbOK.CheckedChanged End Class
87
윈도우 폼 응용 고급 프로그램 디자인 창에서 각각의 라디오 버튼을 활성화하고, 활성화된 라디오 버튼 속성 창의 이벤트를 선택하고, Click 이벤트 우측의 콤보 박스를 선택하여 그룹 박스명과 같은 이벤트로 맞춰준다. ① OK 라디오 버튼 클릭 ② 이벤트 선택 ③ 그룹 박스명과 동일한 이벤트로 설정
88
17개의 라디오 버튼은 다음과 같은 내용으로 설정한다.
윈도우 폼 응용 고급 프로그램 17개의 라디오 버튼은 다음과 같은 내용으로 설정한다. 그룹 이름 객체 이름 이벤트 및 설정 값 버튼 (GroupBox1) RadioButton1 ~ RadioButton6 Click : Button_Click 아이콘 RadioButton7 ~ RadioButton14 Click : Icon_Click 디폴트버튼 RadioButton15 ~ RadioButton17 Click : DefaultButton_Click
89
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
Private Sub Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbYesNoCancel.Click, rdbYesNo.Click, rdbRetryCancel.Click, rdbOKCancel.Click, rdbOK.Click, rdbAbortRetryIgnore.Click ' 체크된 버튼 라디오 버튼을 선택, intButton 변수에 지정 Select Case sender.Name Case "rdbAbortRetryIgnore" intButton = MessageBoxButtons.AbortRetryIgnore Case "rdbOK" intButton = MessageBoxButtons.OK Case "rdbOKCancel" intButton = MessageBoxButtons.OKCancel Case "rdbRetryCancel" intButton = MessageBoxButtons.RetryCancel Case "rdbYesNo" intButton = MessageBoxButtons.YesNo Case "rdbYesNoCancel" intButton = MessageBoxButtons.YesNoCancel End Select End Sub
90
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
Private Sub Icon_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbWarning.Click, rdbStop.Click, rdbQuestion.Click, rdbInformation.Click, rdbHand.Click, rdbExclamation.Click, rdbError.Click, rdbAsterisk.Click ' 체크된 아이콘 라디오 버튼을 선택, intIcon 변수에 지정 Select Case sender.Name Case "rdbAsterisk" intIcon = MessageBoxIcon.Asterisk Case "rdbError" intIcon = MessageBoxIcon.Error Case "rdbExclamation" intIcon = MessageBoxIcon.Exclamation Case "rdbHand" intIcon = MessageBoxIcon.Hand Case "rdbInformation" intIcon = MessageBoxIcon.Information Case "rdbQuestion" intIcon = MessageBoxIcon.Question Case "rdbStop" intIcon = MessageBoxIcon.Stop Case "rdbWarning" intIcon = MessageBoxIcon.Warning End Select End Sub
91
윈도우 폼 응용 고급 프로그램 3. 각각의 이벤트 서브 프로시저 작성한다.
Private Sub DefaultButton_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbDefaultButton3.Click, rdbDefaultButton2.Click, rdbDefaultButton1.Click ' 체크된 디폴트 버튼 라디오 버튼을 선택, intDefaultButton 변수에 지정 Select Case sender.Name Case "rdbDefaultButton1" intDefaultButton = MessageBoxDefaultButton.Button1 Case "rdbDefaultButton2" intDefaultButton = MessageBoxDefaultButton.Button2 Case "rdbDefaultButton3" intDefaultButton = MessageBoxDefaultButton.Button3 End Select End Sub Private Sub btnRun_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnRun.Click ' MessageBox 대화상자와 타이틀을 출력 MessageBox.Show(txtMessage.Text, txtTitle.Text, intButton, intIcon, intDefaultButton)
92
윈도우 폼 응용 고급 프로그램 4. 프로젝트를 실행한다. 5. 프로젝트를 저장한다.
메뉴에서 [파일] →[모두 저장(L)]을 선택하여 프로젝트를 저장한다. 프로젝트 저장 대화상자에서 이름을 “MessageBox1”으로, 위치를 “C:\VB 예제\chapter07”로 입력하고, [저장] 버튼을 클릭하면 프로젝트가 저장된 다.
Similar presentations