지난 강좌에서 이미 속성과 이벤트에 대해 살펴봤습니다. 지난 강좌에서는 컨트롤을 만들고 클릭 이벤트를 발생시켜 텍스트 박스의 속성을 변경하는 실습을 했습니다. 비주얼베이직이 이처럼 쉬운 툴이라는 것을 말씀드리기 위해 그냥 따라해봤던 것이죠.
물론 단 한번의 실습으로도 모두 이해를 하셨겠지만 오늘 중복 설명을 해야겠습니다. 지난 시간에 메서드의 개념에 대한 설명을 빠뜨렸는데, 메서드에 대해 설명을 하자니 부득이 속성과 이벤트에 대해 한번 더 설명을 할 수밖에 없네요. 복습하는 셈 치고….
속성
먼저 비주얼베이직을 실행하고 ‘표준 EXE’를 선택하면 빈 폼이 열립니다. (앞으로 특별히 언급하지 않으면 항상 ‘표준 EXE’ 상태로 프로그램을 시작하기로 약속하죠.)
빈 폼에 텍스트박스 컨트롤을 아래 그림과 같이 추가합니다.(어떻게 하시는지 아시죠? 이미 앞에서 실습했음다.)

그리고 오른쪽 하단에 속성 창을 보세요. 이미 이전에 실습해서 아시겠지만 여러 속성의 이름과 기본적인 속성 값들이 보입니다. 텍스트 박스 컨트롤의 속성들을 자세히 살펴보면 모두 43가지나 됩니다. 이 중에서 우리는 지난 시간에 이름 속성과 Text 속성 등을 바꿔봤습니다. 그 외에 텍스트 박스에 입력 또는 표시되는 글꼴의 모양을 변경할 수 있는 Font 속성, 텍스트 박스 테두리 모양을 변경할 수 있는 BorderStyle 속성, 배경색을 바꿀 수 있는 BackColor 속성 등 매우 많습니다.
각각의 컨트롤은 이많큼 많은 속성을 가지고 있습니다. 그럼 이 모든 속성을 다 외워야 하는가? 시간이 남아도시는 분은 그렇게 하셔도 될 것입니다. 그러나 대개의 경우 몇 가지 자주 사용하는 속성만 기억하고 나머지 속성들은 대충 그러한 것들이 있다는 것만 알아두시면 됩니다. 비주얼베이직으로 프로그래밍을 여러번 하다가 보면 자연스레 여러 속성에 대해 속속들이 알게될 것이기 때문입니다.

속성을 바꾸는 방법은 두 가지가 있습니다. 먼저 기본적으로 위와 같은 속성 창에서 직접 그 값을 바꾸는 방법이 있습니다.
또 다른 방법으로는 코드 창에서 직접 바꾸는 방법이 있습니다. 실제 프로그램이 실행되는 도중에 사용자에 의해 속성값을 바꿔야할 경우에 주로 사용되죠.
혹시 지난 강좌 실습 기억나시나요? <눌러봐> 버튼을 눌렀을 때 텍스트박스에 “뭘 봐?”라고 표시되었죠. 텍스트박스를 만들면 기본적으로 Text 속성의 속성 값이 “Text1″입니다. 이것을 프로그래머가 처음에 “”(빈칸)으로 바꿨습니다. 그리고 사용자가 프로그램을 실행하고 <눌러봐> 버튼을 눌렀을 때 “”(빈칸)이던 Text 속성값이 “뭘 봐?”로 바뀐 것이죠? 이해가 되시는지요?…… 이해가 될 때까지 이 문장 반복해서 보시길…
메서드
메서드는 영어로 method, 말 그대로 ‘방법’이라는 뜻입니다. 즉 어떤 개체(컨트롤)를 실행하는 방법을 말합니다. 어떤 폼을 보이게 할 수도 있고, 숨기게 할 수도 있고, 그림을 그리거나 이동시킬 수도 있죠.
자, 그럼 폼 위의 Text1 텍스트 박스를 더블클릭하여 코드 창을 열어보세요.
그러면 아래와 같이 Private Sub Text1_Change( ) 함수가 기본적으로 나오죠.
그 아래 줄에 다음과 같이 Text2.을 입력합니다. 그러면 점(.)을 입력하는 순간 아래 그림과 같이 무언가를 선택할 수 있는 목록이 나타나죠. 이 목록이 바로 속성과 메서드 목록입니다. 검은 색 글씨만으로 된 것이 속성이고 녹색 아이콘이 붙어있는 것이 바로 메서드입니다.

목록에서 SetFocus 메서드를 선택해서 Text2.SetFocus라는 문장을 완성하세요.
Private Sub Text1_Change()
Text2.SetFocus
End Sub
이제 뜻을 살펴볼까요?
Text1이라는 텍스트 박스에 Change 이벤트가 발생하면, 즉 텍스트 박스의 내용을 변경하면
Text2라는 텍스트 박스로 포커스를 옮겨라, 즉 Text2 텍스트 박스로 커서가 이동합니다.
그러면 이제 [F5]를 누르거나 실행 버튼(▶)을 클릭하여 프로그램을 실행해 보세요. 그런다음 Text1이라고 씌어진 부분에 글자를 입력해 보세요. 단 한자를 입력하자마자 커서가 Text2로 이동되는 것을 알 수 있습니다.
좀 어렵죠? 메서드에 대한 적절한 예가 없어 SetFocus 메서드로 예를 들자니 다소 어렵게 느껴질 수도 있었겠습니다.
정리하자면 메서드는 개체(컨트롤 등을 말함)를 대상으로 행해질 수 있는 일종의 함수를 말합니다. 그래서 속성과 마찬가지로 항상 그 대상이 되는 개체(위의 예에서는 Text2)를 명시하고 점(.)을 찍은 다음 뒤에 표시를 하게 됩니다.
이벤트
이벤트에 대해서는 지난 강좌에서 설명드렸죠? 사용자가 행하는 어떤 ‘행위’라고 말입니다. 즉 커맨드 버튼을 클릭(Command1_Click())하거나 더블클릭(Command1_DbClick)하는 행위, 텍스트 박스에 글자를 입력하거나 수정(Text1_Change())하는 행위 등을 말합니다.
보기 메뉴에서 코드를 선택하여 코드 창을 열어봅시다.(코드 창을 여는 방법은 이 외에도 여러 가지가 있습니다. 폼을 더블클릭하거나 특정 컨트롤을 더블클릭해도 열립니다.)

아래 그림과 같은 코드 창에서 Text1이라고 표시된 부분이 ‘개체’ 목록을 나타내는 부분입니다. 쉽게 말하면 컨트롤 이름이라고 할 수 있습니다. (개체는 컨트롤보다는 광범위한 개념입니다만, 이것저것 다 설명하자면 너무 길어지니 그냥 컨트롤과 같은 것이라고만 생각해주시기 바랍니다.) 현재 폼 위에 텍스트 박스를 두 개 그려넣었으니 Form1, Text1, Text2라고 세 개의 개체가 표시될 것입니다.

오른쪽의 Change라고 표시된 부분은 ‘프로시저’ 목록입니다. 쉽게 말하면 이벤트라고 할 수 있습니다.
우리가 폼 위에 컨트롤을 만들고 더블클릭하여 폼 창을 열면 기본적으로 가장 자주 실행되는 이벤트 프로시저가 표시됩니다. 예를 들어 커맨드 버튼을 더블클릭하면 클릭 이벤트가 기본적으로 표시되고, 텍스트 박스 이벤트를 클릭하면 Change 이벤트가 기본적으로 표시됩니다.
개념만 설명할려니 쉽지 않네요. 다음 시간부터는 또 하나씩 실습해가면서 컨트롤을 하나하나 익혀나가기로 하죠.
혹시 오늘 강좌 잘 이해가 가시지 않는 분은 다시 처음부터 읽어보세요. 두 번 세 번 그냥 읽으시면 분명히 이해는 가실 것입니다. 그렇게 어렵지는 않으니까요.
이상 동주아빠 손병목이었습니다.
