Presentation is loading. Please wait.

Presentation is loading. Please wait.

4장 기본컨트롤Ⅰ 4.1 컨트롤 컨트롤이란? 4.2 폼 폼의 속성 폼의 기본 이벤트

Similar presentations


Presentation on theme: "4장 기본컨트롤Ⅰ 4.1 컨트롤 컨트롤이란? 4.2 폼 폼의 속성 폼의 기본 이벤트"— Presentation transcript:

1 4장 기본컨트롤Ⅰ 4.1 컨트롤 4.1.1 컨트롤이란? 4.2 폼 4.2.1 폼의 속성 4.2.2 폼의 기본 이벤트
4.2.3 폼의 마우스 이벤트 4.2.4 폼의 키보드 이벤트 4.2.5 폼의 드래그 이벤트 4.2.6 폼의 주요 메서드 4.3 Label, TextBox, CommandButton 4.4 CheckBox, OptionButton, Frame

2 학 습 목 표 이번 장에서는 윈도우 응용 프로그램에서 사용자 인터페이스를 구성하는 가장 기본이 되는 폼과 비주얼베이직이 제공하는 컨트롤 중 기본이 되는 컨트롤의 주요 속성, 메서드, 이벤트에 대해서 살펴볼 것이다.

3 4.1 컨트롤 4.1.1 컨트롤이란? 비주얼베이직은 윈도우 환경을 구성하는 요소들 가운데 특징적인 몇 가지를 효율적으로 시각화시켜 놓았다. 이러한 것을 가리켜 컨트롤(Control)이라고 부른다. 비주얼베이직에는 크게 기본컨트롤(표준컨트롤)과 외부컨트롤(ActiveX컨트롤) 두 종류의 컨트롤을 제공한다.

4 4.1 컨트롤 1) 기본컨트롤 [그림4-1]의 도구상자 내에 있는 컨트롤을 기본컨트롤이라 한다. [그림4-1]

5 4.1 컨트롤 2) 외부컨트롤 도구상자에서 마우스 오른쪽 버튼을 눌러 팝업메뉴에서 [구성요소]를 선택하면, [구성요소대화상자]가 나타난다. 컨트롤 탭의 목록에서 추가하고자 하는 컨트롤을 체크하고 [확인]버튼을 누른다. 그럼 도구상자에 사용하고자 하는 컨트롤이 추가된다.

6 4.2 폼 윈도우 응용 프로그램은 폼을 기반으로 각종 컨트롤을 배치하여 사용자 인터페이스를 만든 다음, 각 컨트롤의 이벤트 처리를 중심으로 프로그램을 제작해 나간다.

7 4.2.1 폼의 속성 [표4-2] 폼의 주요 속성 속성 설명 Name
폼을 비롯한 모든 컨트롤은 Name 속성을 갖고 있다. Name 속성은 프로그램 상에서 해당 개체를 다른 개체와 구별하게 해주는 고유 속성이다. Caption 폼의 제목표시줄에 나타낼 문자열을 지정한다. BorderStyle 폼의 테두리 모양을 결정한다. ControlBox ControlBox와 최소화, 최대화, 닫기 버튼을 보이고 싶지 않으면 False로 지정한다. Enabled 폼을 활성화 할 것인지 비활성화 할 것인지를 결정할 때 사용한다. Visible 폼을 보일지 보이지 않을 것인지를 결정할 때 사용한다. Height, Width 폼의 세로, 가로 길이를 결정한다. Left, Top Left는 화면상에서 폼의 왼쪽 좌표를, Top은 상단 좌표를 결정한다. ScaleHeight, ScaleWidth 폼의 Border의 두께를 제외한 폼의 세로, 가로 길이를 결정한다. MousePointer, MouseIcon MousePointer 속성은 마우스의 모양을 결정한다. 모두 16개의 마우스 모양을 지원하며, 만약 사용자가 정의한 마우스 모양을 지정하고 싶으면, MouseIcon 속성에 그림을 지정한 후 MousePointer 속성을 99로 지정하면 된다.

8 실습예제 1) 폼의 속성 폼 디자인 폼의 속성 폼의 속성 속성값 설명 Name frmLogin
프로젝트에 폼을 추가하면 기본적으로 From1, From2 식으로 이름이 붙지만, 속성 창에서 프로그램의 가독성을 위하여 의미 있는 이름으로 변경한다. 예를 들어, 로그인 폼인 경우 frmLogin, 회원 관리 폼인 경우 frmUser라고 이름을 부여할 수 있다. Caption 로그인 폼의 역할 및 의미를 부여하여 Caption을 부여할 수 있다. 예를 들어 누가 보더라도 ‘로그인’용으로 사용될 폼이라는 것을 알 수 있다. BorderStyle 1-단일 고정 1-단일 고정으로 설정하면 폼 사이즈를 조절할 수 없게 한다. MinButton True 최소화 버튼만 활성화시킨다. StartUpPosition 2-화면 가운데 폼이 처음 나타나는 위치를 화면 가운데로 지정한다.

9 4.2.2 폼의 기본 이벤트 [표4-4] 폼의 기본 이벤트 이벤트 설명 Initialize
폼을 구성하기 위한 인스턴스가 생성될 때 발생한다. Load 폼이 메모리상에 로드할 때 발생한다. 일반적으로 Load 이벤트 프로시저에서는 폼이 화면에 표시되기 전에 수행할 초기화 작업을 수행한다. Activate 폼이 활성화될 때 발생한다. 폼이 활성화 상태가 되면 제목 표시줄이 파란색으로 표시된다. QueryUnload 폼이 닫히기 직전에 발생한다. Unload 폼이 메모리에서 제거될 때 발생한다. QueryUnload, Unload 이벤트 프로시저에서는 폼을 닫기 전에 종료 여부 묻기, 변경된 내용 저장 여부 묻기 등의 작업을 수행할 수 있다. Terminate 폼 클래스가 소멸될 때 발생한다.

10 실습예제 2) 폼의 기본 이벤트 코드 작성 1 2 3 4 5 6 7 8 9 Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) Dim iRe As Integer iRe = MsgBox("정말로 종료하시겠습니까?", vbYesNo + vbQuestion, "폼종료확인") If iRe = vbNo Then Cancel = True End If End Sub

11 실습예제 2) 폼의 기본 이벤트 실행 결과

12 4.2.3 폼의 마우스 이벤트 [표4-5] 폼의 마우스 이벤트 [표4-6] 폼의 Mouse 이벤트 프로시저 매개변수 이벤트
설명 MouseDown 마우스가 눌릴 때 발생한다. MouseMove 마우스가 움직일 때 발생한다. MouseUp 눌렀다 놓을 때 발생한다. 매개 변수 설명 Button 누른 마우스 단추를 나타내는 값으로 1:왼쪽, 2:오른쪽, 4:가운데 단추를 의미한다. Shift 1:<Shift>키, 2:<Ctrl>키, 4:<Alt>키를 의미한다. 만약 <Shift>키와 <Ctrl>키를 동시에 누르면 3이 된다. X, Y 마우스를 클릭한 위치의 X, Y 좌표

13 실습예제 3) 폼의 마우스 이벤트 코드 작성 1 2 3 4 5 6 7 8 9 10 11 12 Option Explicit
Private Sub Form_Load() DrawWidth = 10 ForeColor = RGB(0, 0, 255) End Sub Private Sub Form_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Then Me.Circle (X, Y), 10 End If

14 실습예제 3) 폼의 마우스 이벤트 실행 결과

15 4.2.4 폼의 키보드 이벤트 [표4-7] 폼의 키보드 이벤트
KeyPress 이벤트는 사용자가 표준 아스키를 눌렀다 놓을 때 발생하며, 표준 아스키를 비롯한 기능키, 편집키 등과 같은 KeyPress가 인식하지 못하는 키를 누를 때 KeyDown 이벤트가, 놓으면 KeyUp 이벤트가 발생한다. 이벤트 설명 KeyPress 사용자가 표준 아스키를 눌렀다 놓을 때 발생한다. KeyDown, KeyUp 표준 아스키, 기능키(F1-F12), 편집키(Insert, Delete, BackSpace)를 눌렀을 때 KeyDown 이벤트가, 놓을 때 KeyUp 이벤트가 발생한다.

16 실습예제 4) 폼의 키보드 이벤트 폼 디자인 컨트롤 속성 컨트롤 속성 속성값 Form1 Name frmKeyBoardTest
Caption 키보드 이벤트 활용 Label1 나이 Label2 이름 Text1 txtAge Text2 txtName

17 실습예제 4) 폼의 키보드 이벤트 코드 작성 1 2 3 4 5 6 7 8 9 10 11 12 13 Option Explicit
Private Sub txtAge_KeyPress(KeyAscii As Integer) If KeyAscii < 48 Or KeyAscii > 57 Then KeyAscii = 0 End If End Sub Private Sub txtName_KeyPress(KeyAscii As Integer) If KeyAscii >= 48 And KeyAscii <= 57 Then

18 실습예제 4) 폼의 키보드 이벤트 실행 결과

19 4.2.5 폼의 드래그 이벤트 [표4-9] 폼의 드래그 이벤트 이벤트 설명 DragOver
폼에서 임의의 컨트롤을 마우스로 선택한 후 다른 위치로 끌 때(드래그할 때) 발생한다. DragDown 끌어서 놓기가 완료될 때 발생한다.

20 실습예제 5) 폼의 드래그 이벤트 폼 디자인 컨트롤 속성 컨트롤 속성 속성값 Form1 Name frmDragTest
Caption 드래그 이벤트 활용 Command1 cmdMenu 메뉴

21 실습예제 5) 폼의 드래그 이벤트 코드 작성 1 2 3 4 5 6 7 8 9 10 11 Option Explicit
Private Sub Form_DragDrop(Source As Control, X As Single, Y As Single) If Source.Name = "cmdMenu" Then If X > Me.Width / 2 Then Source.Left = Me.ScaleWidth - Source.Width Else Source.Left = Me.ScaleLeft End If End Sub

22 실습예제 5) 폼의 드래그 이벤트 실행 결과

23 4.2.6 폼의 주요 메서드 [표4-11] 폼의 주요 메서드 모달과 모달리스에 대한 이해
- 폼을 화면에 표시할 때 모달(Modal)과 모달리스(Modeless) 대화상자로 표시할 수 있다. - 모달 폼은 이 폼이 제거되지 않는 한 다른 작업을 진행할 수 없다. 즉 이 폼이 닫히기 전에는 다른 폼으로 포커스를 이동할 수 없다. 예를 들어 메시지 대화상자나 열기/저장/인쇄 다이얼로그 등을 들 수 있다. - 모달리스 폼은 일반 윈도우와 같이 동작하는 폼으로 폼을 닫지 않아도 자유자제로 다른 작업을 수행할 수 있다. 대표적인 예로 찾기 다이얼로그가 모달리스 폼이다. 메서드 설명 Show MDIForm 또는 Form 개체를 화면에 표시한다. Hid MDIForm 또는 Form 개체를 화면 상에서 숨긴다. Load 폼이나 컨트롤을 메모리에 로드한다. Unload 폼이나 컨트롤을 메모리에서 언로드한다.

24 실습예제 6) 폼의 주요 메서드 폼 디자인 컨트롤 속성 컨트롤 속성 속성값 Form1 Name frmLoadTest
Caption 폼의 주요 메서드 Command1 cmdLoad Load Command2 cmdUnload Unload Command3 cmdShow Show Command4 cmdHide Hide Command5 cmdEnd 종료

25 실습예제 6) 폼의 주요 메서드 폼을 하나 더 추가하자 폼 디자인 컨트롤 속성 컨트롤 속성 속성값 Form1 Name
frmLoadChild Caption 자식 폼

26 실습예제 6) 폼의 주요 메서드 코드 작성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 Option Explicit Private Sub cmdLoad_Click() Load frmLoadChild End Sub Private Sub cmdUnload_Click() Unload frmLoadChild Private Sub cmdShow_Click() frmLoadChild.Show ‘ frmLoadChild.Show (vbModeless) '또는 0 ' frmLoadChild.Show (vbModal) '또는 1 Private Sub cmdHide_Click() frmLoadChild.Hide Private Sub cmdEnd_Click() End

27 실습예제 6) 폼의 주요 메서드 실행 결과

28 4.3 Label, TextBox, CommandButton
속성 설명 Caption 문자열을 출력한다. BorderStyle ‘1-단일고정’을 선택하면 테두리가 3D형태로 바뀐다. AutoSize 문자열 길이에 맞추어 자동으로 컨트롤 크기가 설정된다. WordWrap 수평 길이는 일정하게 하고 수직으로 길이가 조정되는 경우는 AutoSize와 WordWrap을 모두 True로 한다.

29 4.3 Label, TextBox, CommandButton
사용자의 입력을 받아들이거나 텍스트를 표시하는데 사용되는 컨트롤이다. [표4-15] TextBox의 주요 속성 속성 설명 Text 문자열을 출력하거나 반환한다. Locked True이면 문자열을 편집할 수 없다. MaxLength 텍스트 박스에 입력할 수 있는 최대 글자수를 설정한다.. PasswordChar 입력할 값을 화면에 나타나지 않고 PasswordChar 속성에 입력한 문자로 보이게 한다. 패스워드를 입력받을 때 많이 사용한다. 단, MultiLine 속성이 False로 설정되어 있어야만 한다. MultiLine, ScrollBars MultiLine이 True이면 텍스트 박스에 여러 줄을 입력할 수 있다. 텍스트 박스에 스크롤 바를 나타나게 할 수 있다. 이때 MultiLine은 True로 설정되어야 한다. SelLength, SelStart, SelText SelLength 속성은 선택된 문자의 수를 설정하거나 반환한다. SelStart 속성은 선택된 문자열의 시작 위치를 설정하거나 반환한다. SelText 속성은 선택된 문자열을 설정하거나 반환한다.

30 4.3 Label, TextBox, CommandButton
사용자가 단추를 클릭하여 수행할 어떤 동작을 구현하는데 이용된다. [표4-16] CommandButton의 주요 속성 속성 설명 Caption 커맨드 버튼이 하는 일을 설명하는 문자열을 표시하고자 할 때 이용한다. 이때 (&)를 영문자 앞에 붙히면 영문자에 밑줄이 생기며, 마우스를 이용하지 않고 키보드로 [Alt + 밑줄친 영문자]를 눌러 바로 접근할 수 있다. Default 폼 위에 여러 개의 버튼이 있을 경우 Enter 키를 눌렀을 때 반응하는 버튼으로 설정할 것인지를 결정한다. Cancel Esc키를 눌렀을 때 자동으로 클릭된 것으로 인식되는 버튼을 설정한다. Default, Cancel 속성은 하나의 폼에 유일하게 한 개만 존재한다. Style 커맨드 버튼이 ‘0-표준’인가 ‘1-그래픽’인가를 결정한다. 버튼에 그림을 나타내고자 한다면 이 속성을 ‘1-그래픽’으로 설정해야 한다. Picture, DownPicture, DisablePicture Picture 속성은 보통 때의 그림을 설정한다. DownPicture 속성은 커맨드 버튼이 눌렸을 때 나타날 그림을 설정한다. DisablePicture 속성은 Enabled 속성이 False일 때 나타날 그림을 설정한다. ToolTipText 마우스를 해당 컨트롤에 가져갈 경우 풍선 도움말에 나타낼 문자열을 설정한다. TabIndex, TabStop TabIndex 속성은 Tab 키를 눌렀을 때 포커스를 받는 순서를 설정한다. TabStop 속성은 Tab키에 의해 포커스를 가질 수 있는지를 결정한다.

31 실습예제 7) Label, TextBox, CommandButton
폼 디자인 컨트롤 속성 컨트롤 속성 속성값 Form1 Name frmLogin Caption 로그인 Label1 아이디 : AutoSize True Label2 암호 :

32 실습예제 7) Label, TextBox, CommandButton
컨트롤 속성(계속) 컨트롤 속성 속성값 Text1 Name txtId MaxLength 10 Text2 txtPassword PasswordChar * Command1 cmdOk Caption 확 인(&O) Style 1-그래픽 Picture 아이콘 Command2 cmdCancel 취 소(&C)

33 실습예제 7) Label, TextBox, CommandButton
코드 작성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 Option Explicit Private Sub cmdOk_Click() Static iCnt As Integer If UCase(txtId.Text) = "VB" And txtPassword.Text = "1234" Then MsgBox "로그온 되었습니다." Else MsgBox "입력한 아이디나 암호가 틀립니다." txtId.SelStart = 0 txtId.SelLength = Len(txtId.Text) txtId.SetFocus iCnt = iCnt + 1 If iCnt = 3 Then End End If End Sub

34 실습예제 7) Label, TextBox, CommandButton
코드 작성(계속) 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 Private Sub cmdCancel_Click() End End Sub Private Sub txtId_GotFocus() txtId.BackColor = &HC0E0FF Private Sub txtId_LostFocus() txtId.BackColor = &H Private Sub txtPassword_GotFocus() txtPassword.BackColor = &HC0E0FF Private Sub txtPassword_LostFocus() txtPassword.BackColor = &H

35 실습예제 7) Label, TextBox, CommandButton
실행 결과

36 4.4 CheckBox, OptionButton, Frame

37 4.4 CheckBox, OptionButton, Frame
컨트롤 속성 설명 CheckBox Value 체크 박스가 선택되었는지의 여부를 결정하고 확인한다. Value 속성값은 ‘0-선택함’, ‘1-선택안함’, ‘2-회색표시’ 3가지가 있다. ‘2-회색표시’는 체크 박스가 내부적으로 여러 항목을 대변할 때 여러 항목 중 일부가 체크상태인 경우에 사용한다. OptionButton 옵션 버튼이 선택되었는지의 여부를 결정하고 확인한다. Value 속성값은 True이면 선택된 상태, False이면 선택되지 않은 상태를 의미한다. Frame Caption 프레임 위에 배치된 컨트롤들이 어떤 종류의 컨트롤들인지를 알 수 있도록 그룹의 이름을 표시해 주는 속성이다.

38 실습예제 8) CheckBox, OptionButton, Frame
폼 디자인 컨트롤 속성 컨트롤 속성 속성값 Form1 Name frmOptChk Caption 옵션 버튼/체크 박스 Text1 txtDisplay Alignment 2-중앙정렬 Font 글꼴-굴림 크기-14 Frame1 fraOption 문자색(옵션 버튼) Frame2 fraCheck 스타일(체크 박스)

39 실습예제 8) CheckBox, OptionButton, Frame
컨트롤 속성(계속) 컨트롤 속성 속성값 Option1 Name optRed Caption 빨강색 Option2 optWhite 하얀색 Option3 optBlack 검정색 Check1 chkBold 굵게 Check2 chkUnderLine 밑줄 Check3 chkStrike 취소선 Check4 chkItalic 기울게 Command1 cmdClear 원래모양(&C)

40 실습예제 8) CheckBox, OptionButton, Frame
코드 작성 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 Option Explicit Private Sub optRed_Click() txtDisplay.ForeColor = vbRed End Sub Private Sub optWhite_Click() txtDisplay.ForeColor = vbWhite Private Sub optBlack_Click() txtDisplay.ForeColor = vbBlack Private Sub chkBold_Click() If chkBold.Value Then txtDisplay.FontBold = True Else txtDisplay.FontBold = False End If

41 실습예제 8) CheckBox, OptionButton, Frame
코드 작성(계속) 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 Private Sub chkUnderLine_Click() If chkUnderLine.Value Then txtDisplay.FontUnderline = True Else txtDisplay.FontUnderline = False End If End Sub Private Sub chkStrike_Click() If chkStrike.Value Then txtDisplay.FontStrikethru = True txtDisplay.FontStrikethru = False

42 실습예제 8) CheckBox, OptionButton, Frame
코드 작성(계속) 39 40 41 42 43 44 45 47 48 49 50 51 52 53 54 55 56 57 58 59 Private Sub chkItalic_Click() If chkItalic.Value Then txtDisplay.FontItalic = True Else txtDisplay.FontItalic = False End If End Sub Private Sub cmdClear_Click() optBlack.Value = True chkBold.Value = 0 chkUnderLine.Value = 0 chkStrike.Value = 0 chkItalic.Value = 0 txtDisplay.ForeColor = vbBlack txtDisplay.FontBold = False txtDisplay.FontUnderline = False txtDisplay.FontStrikethru = False

43 실습예제 8) CheckBox, OptionButton, Frame
실행 결과


Download ppt "4장 기본컨트롤Ⅰ 4.1 컨트롤 컨트롤이란? 4.2 폼 폼의 속성 폼의 기본 이벤트"

Similar presentations


Ads by Google