2024-소프트웨어과 1학년/비주얼베이직 닷넷 VB.NET

[아기대학생김따루]비주얼베이직 VB.NET 기초 정리 자료[Visual studio.NET]개념

simless786-it 2024. 9. 5. 13:51

 

Programming in Visual Studio: Making my environments: 하드 디스크의 특정 폴더 생성

비주얼 스튜디오에서 생성한 폴더 아래에 프로젝트(솔루션)생성.

명령형/절차형(imperative/procedural) 패러다임: 이름있는 데이터를 완전히 명시하고 제어하여 단계적으로 조작하는 것.

함수형(functional) 패러다임: 여러 변수를 1개의 함수로 표현함. 간결한 코드. 데이터와 순서를 같이 사용. 오른쪽에서 왼쪽으로 해석. 함수형 언어는 연속적인 함수 호출로 구성됨.

객체지향(object-oriented) 패러다임: 프로그램의 상태를 객체 안에 저장. 정의 연산(operation)만을 통해 접근 가능

객체(object): 기억장소 위치(memory location) + 연산(operations)

클래스: 같은 특징을 가지는 객체의 그룹

계산: 객체들간의 상호 작용(interaction) 또는 통신(communication)->메시지 이용

이벤트 기반 프로그래밍. 절차형(순차적) 프로그래밍 방식. 도스 운영체제에서 사용. 프로그램을 작성할 때 명령어의 처리 순서를 고려. 순서들을 조금씩 구조화해서 함수라는 형태로 정의하고 호출해 사용.

개체: 특징, 기능, 행위로 표현할 수 있음. 실제로 존재하는 것과 생각할 수 있는 것,

컨트롤: 텍스박스, 버튼, 리스트박스 같은 각 컨트롤이 개체에 해당.

 

개체는 속성(property)+메서드(method)+이벤트로 이루어짐.표준 컨트롤과 ActiveX 컨트롤이 있음.

속성: 개체의 색상, 크기, 위치와 같은 외형을 정의하는 특성. 개체마다 속성이 다르다. 레이블(제목용으로 사용되어 글자를 표시하는 속성이 대부분이므로 그림 속성이 없음). 픽처박스(그림을 넣는 컨트롤이므로 그림에 관한 속성이 다양하지만 글자에 대한 속성이 없음)

메서드: 개체가 수행하는 동작이나 기능을 정의. 각 컨트롤의 기능에 따라 정의된 메서드가 다름. 비주얼 베이직 프로그래밍은 각 컨트롤이 가진 속성과 메서드를 이용하여 어떤 기능을 하게 만드는 작업.

이벤트: 개체가 사용자나 시스템으로부터 받는 명령. 개체가 반응할 수 있는 특정 사건. 사용자가 마우스를 움직이는 행위, 키보드로 문자를 입력하는 행위, 버튼을 클릭하는 행위가 이벤트에 해당.

프로시저: 이벤트를 처리하는 단위, 어떤 행동을 수행하기 위한 일련의 작업 순서. 프로시저는 이벤트를 처리하기 위한 메서드와 변수 제어문 등을 포함. 이벤트 프로시저(이벤트가 발생했을 때 자동으로 호출되는 프로시저)

Visual Basic Windows Forms. Net Framework로 실행

비주얼베이직은 프로젝트를 구성하는 모듈, 클래스 등의 구성 요소를 별도로 저장하며 폼도 독립적이다.

솔루션(.sln): 프로젝트를 묶는 개별 단위 객체 > 프로젝트(.vbproj): 모든 요소를 묶는 객체 > 폼: GUI요소를 활용해 시각적으로 표현. > Form1.vb: 배치된 컨트롤러의 크기, 위치, 속성 등에 관한 정보를 담는다. = Form1.Designer.vb: 화면 디자인 파일 = Form.1.resx:  xml 리소스 파일.

 

 

윈도 프로그램: 윈도우 운영체제 하에서 동작하는 프로그램으로 공통된 그래픽 사용자 인터페이스인 GUI를 사용한다.

절차형 프로그래밍이란 명령어가 기술된 순서대로 프로그램을 처리하는 방식으로 프로그램의 실행 순서를 중시함. 따라서 프로그래밍할 때는 명령어 처리순서를 매우 신중하게 고려해야 함.

이벤트 기반 프로그래밍이란? 이벤트는 프로그램에 의해 감지되는 어떤 행동이나 발생된 사건을 가리키는데, 이런 이벤트에 반응되게 설계된 프로그램 이벤트 기반 프로그램이다. 절차형 프로그램처럼 명령어의 기술 순서대로 처리하지 않고, 사용자가 발생시킨 이벤트에 따라 미리 정해진 명령을 처리하는 방식이다.

컨트롤이란? 사용자가 응용 프로그램과 서로 소통하면서 사용한 커맨드버튼이나 리스트박스, 텍스트박스 등을 아이콘 형태로 만들어 놓은 것. 표준컨트롤과 ActiveX(사용자 정의) 컨트롤이 있으며 표준 컨트롤은 도구상자에 표시된다.

개체에 대한 설명: 모든 개체는 속성, 메서드, 이벤트라는 세 가지 구성 요소를 갖는다..

개체의 속성은 색상, 크기, 위치 등을 정의하는 중요한 특성이다.

개체의 메서드는 개체의 기능과 동작을 정의한다.

개체의 이벤트는 개체가 반응할 수 있는 특정 사건을 의미한다.

비주얼베이직 프로그램을 작성하는 과정은?

= 프로젝트 시작 ->폼 디자인 및 속성 설정(인터페이스 만들기) ->코드 작성-> 프로젝트 실행과 저장->실행파일(exe)만들기

윈도 폼 컨트롤: 확인 버튼, 문자 입력 박스처럼 윈도 응용 프로그램에서 자주 볼 수 있는 화면 구성 요소. 각각의 컨트롤은 속성, 메소드, 이벤트를 가짐.

공용 컨트롤: 비주얼베이직 닷넷에 내장된 컨트롤. 총 21개 제공.

컨트롤의 속성은 속성 창이나 코드 편집 창에서 설정할 수 있다.

디자인 모드 편집은 속성 창을 이용, 실행 모드 편집은 프로그램 코드에서 속성을 설정한다. 컨트롤명. 속성=속성값이다.

메소드: 개체가 수행하는 동작이나 기능을 정의. 컨트롤에 속한 여러 함수를 의미. 컨트롤명.메소드

 

 

Autosize False: 버튼 크기 자동 조절 불가

Backcolor control: 버튼의 배경 색을 설정함.

BackgroundImage 기본값 없음: 버튼에 배경 이미지를 넣는다.

Enabled True: 버튼 활성화

Font: 글꼴 설정

Locked False: 버튼 조정 불가

TextAlign: 버튼에 표시되는 문자열의 위치 설정

Visiblem True: 컨트롤이 보이게 함

메서드 SetFocus: 버튼에 포커스를 둔다.

이벤트 KeyPress: 키보드의 키를 눌렀다 놓았을 때 발생.

텍스트박스 컨트롤à AcceptsReturn: 엔터 입력 시 기능을 설정한다. False: Form 속성의 AcceptButton과 연동 가능. 지정해 놓은 상태에서 엔터를 누르면 지정된 버튼을 클릭한 효과가 나타난다. àMaxLength: 텍스트박스에 입력할 수 있는 최대 문자 수를 설정한다. Multiline: 텍스트박스에 여러 줄 입력할 수 있는지 여부 설정. False는 한 줄 텍스트만 허용.  PasswordChar: 텍스트박스에 입력한 문자 대신 **이런게 화면에 출력. àWordWrap: 여러 줄을 입력할 때 자동 줄 바꿈 기능을 제공한다. Flase시 자동 줄 바꿈 하지 않음.

체크박스 컨트롤: 그룹으로 묶인 여러 항목 중 하나 이상을 선택할 때 사용. 참과 거짓 중 한 ㅏ지 상태만 가질 수 있음.

라디오버튼 컨트롤: 여러 항목 중 하나만 선택할 때 사용. 동시에 여러 항목을 선택할 수 있는 체트박스 컨트롤과 달리 한 항목만 선택할 수 있음.

private sub command1_Click

end sub

:이런 식으로 정의되어 있는 것. 클래스 또는 인스턴스 내에서만 사용한다는 의미가 Private, sub는 서브루틴의 준말. Command1_Click은 함수명이며 end sub는 그것을 모두 다 했다는 뜻.

공통적으로 사용되는 함수라면 public, 이 윈도우 자체 내에서만 사용된다 하면 private사용.

서브루틴은 어떤 처리를 하고 그냥 끝내라는 것.

Dim문은 변수에 대한 선언문이다.

Label컨트롤은 사용자가 편집할 수 없는 텍스트, 즉 제목 등을 표시하는 데 사용한다.

TextBox컨트롤은 사용자의 입력을 받아들이거나 텍스트를 표시하는 데 사용한다.

Button 컨트롤은 사용자간 버튼을 클릭하여 수행할 어떤 동작을 구현하는 데 사용한다.

GroupBox 컨트롤은 폼을 기능볍ㄹ로 세분화하여 컨트롤을 그룹화하는 데 사용함.

Name속성은 프로그램에서 해당 개체를 다른 개체와 구별하기 위해 사용함.

텍스트박스 컨트롤의 멀티라인 속성은 텍스트를 여러 줄로 입력할 때 사용한다.

ComboBox컨트롤은 텍스트박스와 리스트박스의 기능을 조합한 것으로 목록에서 한 항목을 선택할 수 있다.

리스트박스 컨트롤에 항목을 추가할 때는 Add 메서드를 사용한다.

체크박스: 키보드로 사용할 필요 없이 마우스 클릭만으로 필요한 데이터를 입력할 수 있으며 다중 선택이 가능하다. 라디오버튼: 제시된 여러 항목 중 선택이 가능하며 다중 선택이 불가능하다.

변수: 변수는 사용범위에 따라 지연변수, 전역변수, 정적 변수, 모듈 변수로 구분하여 사용.

변수 선언: Dim 변수명 As 데이터형(크기) Dim score As integer,, Dim name As string.

[Dim/Static/Public/Private] 변수명 As 데이터형.

변수명 작성 규칙à 영문자 한글, 숫자, 밑줄 조합해 사용이 가능. 다른 특수 기호는 안됨. 첫 글자는 반드시 영문자나 한글이다. 기호나 숫자는 불가능. 첫 글자가 예약어(sub, private, End 등)이 될 수 없다. 255자 초과가 불가능하며 대소문자 구분이 없다.

정수 데이터형(1): Byte < UShort(2바이트) < UInteger(4byte) < ULong(8byte)

정수 데이터형(2): SByte < Short(2byte) < Integer(4byte) < Long(8byte)

정수/실수 데이터형: Decimal(16byte)

실수 데이터형: Single(4byte) < Double(8byte)

문자 데이터형: Char(2byte) < String(4byte)

기타 데이터형: Boolean(2byte) < Object(4byte) < Date(8byte)

명시적 선언: 변수 선언 후 사용, 묵시적 선언: 변수를 선언하지 않고 사용

묵시적 선언의 경우 첫 번째로 저장되는 값에 따라 데이터형이 자동으로 결정, 변수를 선언하지 않으면 실수로 오류가 발생할 가능헝이 크기 때문에 명시적으로 선언하는 것이 안전하다.

  1. EX) 명시적 선언:

Dim score As integer

score=100

  1. EX) 묵시적 선언

score=100

[지역변수] 유효 범위: 블록, 선언 시작과 종료문 사이를 말한다. IF~EndIf, For~Next, DO~Loop, While~EndWhile, Select~EndSelect 등. 블록 내에 선언된 변수는 해당 블록 내에서만 사용할 수 있음.

[전역변수] 유효 범위: 포함된 모든 모듈, 모듈 수준에서 Public으로 선언된 변수로 모든 모듈 내에서 사요이 가능함. 여러 개의 폼으로 구성된 경우 모든 폼에서 사용이 가능함.

[지역변수] 유효 범위: 프로시저, 프로시저 내에서 선언된 변수는 해당 프로시저 내에서만 사용 가능. 이 수준의 변수를 ‘지역변수’라고 함.

[모듈 변수] 유효 범위: 모듈, 모듈 수준에서 Private로 선언된 변수. 모듈 내의 모든 프로시저에서 사용이 가능함.

지역변수의 사용: 지역변수는 메모리 반납 여부에 따라 Dim 과 Static(정적) 변수로 나뉨…

Dim변수: 프로시저 실행이 종료되면 메모리를 반납하고 값 삭제.

Static변수: 메모리를 반납하지 않고 저장된 값을 그대로 유지하므로, 프로시저가 종료되더라도 그 값을 유지해야 할 경우에 사용.

모듈변수의 선언: 프로시저 내부가 아닌 코드 편집 창 상단의 일반 부분에서 Dim 또는 Private로 선언. 선언된 모듈변수는 모듈 내에 기술된 모든 프로시저에서 이용할 수 있음.

전역변수의 선언: 프로젝트 내의 모든 프로시저에서 변수를 공유하고자 할  때는 Public 전역변수 선언자를 사용함. 한 번 선언하면 프로젝트가 종료될 때까지 메모리 유지.

상수: 내장 상수와 사용자 정의 상수로 구분.

내장 상수: 내장 상수들은 대부분 vb라는 접두어로 시작하며 각 상수마다 의미 있는 이름이 붙어 제공.

연산자: 산술 연산자, 비교 연산자, 논리 연산자, 연결 연산자.

연산자 우선순위: 괄호à산술 연산자à연결 연산자à관계 연산자à논리 연산자 순으로 계산한다.

학생들의 국어 점수를 0~100점까지 저장하려고 한다. 어떤 데이터형을 사용하는 것이 가장 효율적인가? Byte.

제어문의 정의: 프로그램의 실행을 인위적으로 조작하는 명령문. 프로그램이 실행될 때 처리할 순서를 결정.

제어문의 종류(1): 조건문. 조건을 검사하여 그 결과에 따라 선택적인 작업을 수행

제어문의 종류(2): 반복문. 조건에 따라 원하는 명령문을 반복 수행

 

 

<If문>

유형1. 조건이 참이면 Then~EndIf 사이의 명령문을 수행하고 If문을 종료. 조건이 거짓이면 End If 다음 명령문으로 바로 넘어감.

[형식]

If 조건 Then

명령문(들)

End IF

유형2. 조건이 참이면 Then~Else 사이의 명령문 1을, 거짓이면 Else~End If사이의 명령문 2를 수행

[형식]

If 조건 Then

명령문 1

Else

명령문 2

End If

유형3. 참인 조건을 만나면 해당 명령문을 수행하고 이후 조건은 모두 무시한 채 End If 다음으로 제어를 옮겨 If 문을 종료

[형식]

If 조건1 Then

명령문 1

ElseIf 조건2 Then

명령문2

ElseIf 조건 3 Then

명령문 3

Else

명령문 n

End If

<Select~Case문>

선택 사항이 많으면 다중If문의 구조가 복잡해진다. Select~Case 문을 사용해 좀 더 단순한 구조로 작성할 수 있음. 조건을 주고 그 조건이 가질 수 있는 값을 각 Case목록에 나타냄. 해당하는 Case를 찾아 연결된 명령문을 수행하고 Select~case문을 빠져나감. 조건에 해당하는 값이 없을 때 실행할 코드는 Case Else 다음에 지정.

[형식]

Select Case 조건

Case Is 값 목록 1

명령문 1

Case Is 값 목록 2.

Case Else

명령문 n

End Select

반복문: 반복문은 주어진 조건에 따라 명령문을 반복해서 실행시킬 때 사용함. 반복 횟수를 지정하고 싶다면 For문이나 Do나 While문을 사용.

<For문>

[형식]

For 카운터 변수 = 시작값 To 끝값 [Step 증가값]

명령문(들)

Next [카운터 변수]

<Do문>

주어진 조건을 만족할 때까지 명령문을 반복 수행하며, 반복 횟수는 조건의 만족 여부에 따라 달라짐.

유형1. 반복하기 전에 조건이 참인지 먼저 검사-> 조건이 참일 경우에만 Do 문에 속한 명령문을 반복하며, 조건이 거짓이면 반복을 중지하고 Loop다음 명령문을 수행

[형식]

Do 조건

명령문(들)

Loop

유형2. 반복할 명령문을 일단 수행-> 그 후에 조건을 검사해서 조건식이 참이면 명령문을 반복하는 구조이므로 반복 명령문을 최소한 한 번은 수행

[형식]

Do

명령문(들)

Loop Until 조건

<While문>

주어진 조건을 만족하면 명령문을 반복 수행, 반복 횟수는 조건 만족 여부에 따라 달라지는데 경우에 따라 반복 명령문을 한 번도 실행하지 않을 수 있음

[형식]

While 조건식

명령문(들)

End While

<GoTo문>

별도의 레이블을 지정해놓고 해당 레이블로 건너뜀. 프로그램의 실행 순서를 간단히 변경할 수 있어서 유용하지만 많이 사용하면 제어 순서가 복잡함. 그러므로 꼭 필요한 경우가 아니라면 사용을 자제해야 함.

<With문>

한 개체와 관련하여 여러 명령문을 수행해야 할 경우에 사용.

[형식]

With 개체명

실행문(들)

End With

[Ex]

With button1

.text=”문장”

.AutoSixe=true

.Enabled=False

.Locked=False

.TextAlign=MiddleCenter

End With