비주얼베이직 강좌/비주얼 베이직 2010 기초강좌

신당기 2012. 3. 30. 14:01

강좌 2 : 컨트롤과 친해지기

 

비베2010에서 컨트롤은 아주 유용한 도구다.

이것을 폼상에 가져다 놓으면 여러가지 작업을 수행하게 된다.

이것을 사용하여 여러 다양한 윈도우 응용프로그램을 만들 수 있다.

오른쪽에 도구 상자가 보일 것이다. 여러 그룹으로 나뉘어져 있는데,

 Common Controls, Containers, Menus, Toolbars, Data, Components, Printings 그리고 Dialogs이다.

이 강좌에는 공용 컨트롤만 다룰 것이다.

 

이제 간단한 계산기를 만들어 보자.

만드는 과정에서 여러가지 컨트롤을 사용하게 될 것이다.

근데 자꾸 컨트롤, 컨트롤하는데 이게 뭔지 모르시는 분은 제 포스트를 잠깐 보고 오세요.

사실 그 포스트는 강좌1과 강좌2의 통합판 비슷합니다.

그냥 여기서는 컨트롤을 '장치'라고 이해하고 읽기는 컨트롤로 그대로 읽겠습니다.

 

강좌1을 기억하세요?

새프로젝트/디자인작성/코드작성의 순서였죠.

새프로젝트는 메뉴에서 파일을 선택하면 보입니다. 그리고 디자인 작성부터 해보죠.

 

일단 아래와 같이 컨트롤을 배치합니다.

 

 

배치할 수 있겠죠.

TextBox가 3개, Label이 2개, 그리고 버튼이 하나입니다.

다 배치했으면 이제 각 컨트롤의 속성을 변화시켜야 합니다.

각 컨트롤의 속성창을 활성화시키려고 하면 원하는 컨트롤을 클릭으로 선택하면 됩니다.

 

먼저 Form1의 Text속성을 '더하기 계산기'로 바꾸죠.

다음 Label1의 Text속성은 '+'로 바꿉니다.

그리고 Label2의 Text속성은 '='으로 바꾸어요.

마지막으로 Button1의 Text속성은 '더하기'로 하죠.

 

 

속성을 바꾸면 위와 같이 됩니다. 제법 폼이 나네요.

 

자 그럼 코드를 입력할 차례입니다.

더하기 버튼을 클릭하면 입력된 두 수를 더해서 결과를 출력하게 되니까 주요 이벤트는 더하기 버튼입니다.

버튼을 더블 클릭합니다.

그리고 다음과 같이 입력해요.

참 입력하실때 이상한게 자꾸 나타날 겁니다. 인테리센스라고 하는 건데요.

코드 입력값을 예상해서 보여주는 겁니다. 설명도 하고요.

원하는 코드를 Tab키를 사용하여 선택하면 자동 입력이 됩니다. 아주 입력이 쉬워집니다.

 

 

여기서 Private Sub Button1_Click이하의 내용은 일단 무시하세요. 나중에 다루게 됩니다.

지금은 그냥 이벤트가 일어났을때 그것을 다루는 이벤트 처리자라고 알고 계세요.

그리고 키워드가 하나 등장했네요. Dim입니다.

이건 변수를 선언할때 사용하는 키워드입니다.

컴파일러에게 이런 변수가 필요하고 그리고 그 종류(type)가 무엇이니 메모리에 공간을 만들라고 지시하는 키워드입니다.

물론 초기화도 가능합니다.

변수선언의 문법은 다음과 같습니다.

 

Dim 변수명1, 변수명2, ......, 변수명 As 변수형(type)

 

Dim은 Dimension의 약자입니다.

비베6에서 배열을 선언할때 사용하던 키워드인데

비베넷으로 발전하면서 모든 변수선언에 사용되도록 변화되었습니다.

위의 선언문을 해석하면, "이런 형(type)으로써(As) 변수를 선언합니다"가 된다.

변수형에 대한 것은 여기를 참고하세요.


위의 그림대로 코드를 입력 하셨나요?

그러면 디버깅 시작을 선택하면 다음과 같이 됩니다.

적당한 값을 텍스트 박스에 입력하고 더하기 버튼을 클릭해 보세요.

 

 

되네요....생각보다 쉽죠.

 

추가(6.16) : 혹 형변환때문에 에러가 나시는 분은 기초강좌7 http://blog.daum.net/shksjy/87 을 참고하세요.

간단한 부분은 아래 추가부분에도 언급이 되어 있긴 합니다.

자세한 사항은 위의 기초강좌7을 보시면 됩니다.

 

추가(5.21): 질문하신 분이 계셔서 약간 수정합니다.

자세한 내용은 중급강좌14를 참고하세요.

혹 초보자시면 이 부분은 보시지 마세요. 중급을 보신후 다시 오셔서 보셔야 합니다.

질문에 대한 답변으로 올린 내용입니다.

강좌 내용과는 너무 비약이 심합니다. 이해안되시면 그냥 건너가세요.

일단 먼저 코드를 올립니다.

선언하는 부분을 클래스바로 아래에서 해줍니다.

 왜냐면 두개의 서브루틴에서 공통으로 사용하니까요.

그리고 아래에 새로운 서브루틴이 하나 보입니다.

바로 KeyPress이벤트핸들러입니다. 이 부분은 디자인창에서 추가할 것이 있습니다.

그리고 형변환하는 부분은 아래의 코드를 참조하시면 됩니다.

바로 Cytpe()을 사용한 부분을 보시면 됩니다............

 

 

약간 어려울 수도 있는데요.

디자인 창에서 아래 그림처럼 Form1을 선택한 후 속성창에서 보면 번개같은 것이 보입니다.

 바로 이벤트목록인데요. 




이벤트 목록을 활성화시킨후 보면

목록중에서 KeyPress가 보입니다.

이 KeyPress를 더블 클릭하면

코드창에서 Form1_KeyPress라는 이름의 서브루틴이 만들어져 있습니다.

 

거기에 위와 같이 코드입력을 해주면 됩니다.


그리고 가장 중요한 것은

이 서브루틴은 Form1에 포커스가 있을때 키이벤트가 활성화되구요

실제로는 이대로 하면 엔터키를 눌러도 아무 일이 일어나지 않습니다.

더 자세한 내용은

아마 [비주얼 베이직 강좌] 중급 15 : 응용프로그램의 A to Z --part 1 http://blog.daum.net/shksjy/134

에 자세히 설명되어 있습니다. 가셔서 보세요.

 

암튼 Button1_Click을 Form1_KeyPress와 연결시켜야 합니다.

아래 그림에서 보는 것처럼

디자인창에서 Button1의 속성창에서 역시 이벤트 목록에서 KeyPress를 선택합니다.

옆의 자그만 스마트버튼을 클릭하시면 이미 Form1_KeyPress라는 항목이 보이실 겁니다.

이걸 선택하시면 됩니다.

그러면 이제 Button1에 포커스가 있을때에도 키입력을 받을 수 있게 됩니다.

처음에는 좀 어렵다고 느껴지실텐테.....

 

 

 

그럼 다음 강좌 컨트롤 속성으로 넘어 갑니다.

 

추가(12.9.24): 아래 초보님 질문에 대한 답변입니다.

그림을 참고하시면 되겠습니다.

 

 

 

추가(2013.5.6) : 촙님의 질문에 대한 답변입니다...

여러줄 주석처리에 관한 건데요...그냥 제가 하는 방식을 말씀드릴께요....

근데 코딩하면서 하는 방법도 있긴 할텐데.....

혹 아시는 분은 댓글 달아 주세요...

 

 

위의 그림에서 보듯이

주석처리하고자 하는 코드를 마우스로 블록 지정한 후에

메뉴판에서 빨간 화살표가 지적하는 곳을 클릭합니다.

클릭하는 횟수만큼 " ' "생기면서 주석처리가 됩니다.

반대로 주석을 제거할때는 그 옆의 단추를 클릭하면 됩니다.

 

 







이전 댓글 더보기
비밀댓글입니다
비밀댓글입니다
순간 -?? 말고 *?? 했다가 오류떴다는 ㅋ
신기하네요 ㅋ 감사합니다
안녕하세요 강좌를 오늘 처음 듣고 있는데요. 제가 어제 2010 프리미엄 버전을 깔았는데요.. 도구 상자가 보이질
않습니다... 도구 상자를 화면에 띠울수 있는 방법좀 가르쳐주세요... 제발~! 감사합니다..
기초강좌2의 말미에 답을 남겼습니다. 참고하세요...
그리고 프로젝트가 열려있어아 실제 사용할 수 있는 도구가 보일 겁니다. 기초강좌1을 참고하세요...
신당기 님 감사 드립니다. 제가 프리미엄 버전 설치 할때 비주얼 베이직 설정이 잘못 되었는지. view -> other windows
제목줄에 "도구 상자" 박스가 없네요. 다행히도 단축기 ctrl + alt + x 눌러서 창을 띄웠습니다. 그런데 전체 list 가 나오네요
아무튼 이제 공부 할수 있게 되었습니다 . 정말 감사 드립니다. 이것 때문에 3일을 공쳤습니다..
짝짝 축하드립니다.
Public Class Form1

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim a, b, plus As Single
a = TextBox1.Text
b = TextBox2.Text
plus = a + b
TextBox3.Text = plus
End Sub
End Class


이거 다 넣었는데
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
End Class
요거 세개에 빨간색이 되면서 안되네요... 어떻게해야하나요?
포스트내용중 추가(6.16 )부분을 참고하세요. 아마 변수형에서 에러가 날 수있어요
1편에서도 댓글단 사람입니다 '신당기'님의 강좌가 너무좋습니다!! 기초강좌~중급강좌까지 모두 퍼가도 될란지??
출처역시 당현이 봙히겠습니다!!
넵! 잘 사용해주세요.
비주얼c++에서 /**/ 이걸로 한프로젝트에 많은 파일을 만들어 컴파일 할수있었는데 비주얼 베이직 에서는 여러줄 주석을 어떻게하나요
그러게요...사실 여러줄 주석을 달일이 잆어서.....
사실 쭉 해놓고 메뉴판에서 주석처리하는 걸로 하는데요....
포스트말미에 추가하겠습니다. 참고하세요....
마지막 추가 부분입니다....
코드중 주석이라는것은 혹시 c처럼 // 같은거를 말씀하시는 건가요?
맞다면은 혹시 ' 말슴 하시는 겁니까?
네..... '' 을 말합니다....
물론 원칙적으로 키워드 Region을 사용한 코드설명이 있긴한데요....저는 사용하지 않게 되더군요...
그때 그때 필요한 만큼.... '' '' 을 사용하게 되더군요
잘 보고 있습니다. 감사합니다.
네. 좋게봐주셔서 감사합니다
뷰티풀 ! 아름답네요
비밀댓글입니다
비밀댓글입니다
감사합니다. 잘봤습니다. 근데 마지막단계인 프로그램으로 어떻게 변환하나요? 비주얼 베이직 끄고도 열수있는 ㅠ
여기를 참고하세요.
http://blog.daum.net/shksjy/201
설치프로그램만들기가 있습니다.

하이
감사합니다. 강좌 3으로 go go..
감사합니다. 잘 읽었습니다.
Dim a, b, plus As Single 이라는 문장에서 Single 은 무슨 의미를 뜻하나요?
정수가 아닌 수를 말하는데요.....나타낼 수 있는 수의 크기에 따라....single, double이라는 말을 사용합니다.
실제로는 single은 4바이트 즉 32비트이구요...double은 8바이트입니다.
기초강좌 6을 참고하세요
주석처리는 ' 로 하니깐 되네여.^^
https://msdn.microsoft.com/ko-kr/library/bx185bk6.aspx
프로그램이 있는데 멀배워야되나 고민하다가 여기까지 왔네요 감사합니다. 열공할게요~
업데이트가 안되어서 검색이 안될텐테 멀리서 오셨네요. 도움이 되기를 바랍니다.
비주얼베이직 배우고싶어서 책알아보고있었는데 이런 꿀 강좌가있다니
너무 좋은 자료 감사합니다
계속 전진하세요.