코딩공부

[깅깅의 C# 독학] 메모 : 컨트롤의 설정과 구조체

깅깅710 2024. 3. 12. 17:52

게임 프로젝트 전까지 다뤄야할 것들이 꽤 남았는데, 빨리 게임 프로젝트로 넘어가고 싶기에 이번부터는 간략하게 정리해보겠다. 실행결과 외에는 되도록 이미지 첨부를 하지 않으려고 한다. 또 여기서부턴 계속 까먹고 다시 찾아볼 것 같아서 필요한 정보만 쓸 것이다. (과연..)

 

[컨트롤의 설정과 구조체(structure)]

컨트롤에는 다양한 설정이 가능한 프로퍼티들이 있다. 라벨을 예시로 몇가지만 살펴보자.

        lb.TextAlign = ContentAlignment.MiddleCenter; //텍스트 정렬
        lb.BorderStyle = BorderStyle.FixedSingle; //경계선 설정
        lb.ForeColor = Color.Blue; //전경색 설정
        lb.BackColor = Color.Gray; //배경색 설정

 

프로퍼티는 저마다 요구하는 값이 있다. 어떤 것은 숫자(Width나 Height), 어떤 것은 열거체 (위에서 TextAlign, BorderStyle)로 정의한 값을 요구한다. 여기서 ForeColor와 BackColor가 요구하는 Color는 구조체(structure)라고 한다. 구조체는 struct 키워드를 사용해서 정의되어 있으며 클래스와 동일하게 이용할 수 있다. 단 클래스와 달리 참조형이 아닌 값형으로 되어있기에 new로 작성하지 않는다.

struct 구조체명
{
	필드의 선언;
    메서드(인수 목록)의 정의
    프로퍼티의 정의...
}

 

구조체와 열거체의 차이가 와닿지 않아서 자료를 찾아보았다.

 

구조체(struct) 활용과 열거형(enum)과의 차이점 - 인프런

안녕하세요. 수업 잘 듣고 있습니다! 항상 감사드립니다.이번 강좌에서 hp, attack 등 다양한 값을 일일이 입력하고 수정하기 귀찮기 때문에 구조체를 만들어서 값을 가져온다고 알려주셨는데struct

www.inflearn.com

요약하자면 열거체 enem은 숫자에 별칭을 붙여주는 개념으로 생각하면 되고 구조체 struct는 일종의 모듬 세트라 생각하면 된다고 한다. 확실히 열거체와 구조체를 정의하는 구조만 봐도 그 차이를 알 수 있긴 하다.

 

* 주요 컨트롤 설정목록 (프로퍼티 목록)

컨트롤의 설정들 중 왠지 조만간 쓸 것 같은 것들을 몇가지 추려보았다.

프로퍼티 명 속성값 /유형 기능설명
BackgroundImage Image 컨트롤에 표시할 배경이미지를
가져오거나 설정
Cursor Cursor 마우스 포인터가 컨트롤 위에 있을 때 표시되는 커서를 가져오거나 설정
Enabled Boolean 컨트롤이 사용자 상호 작용에 응답할 수 있는지를 나타내는 값을 가져오거나 설정
(즉, 컨트롤 활성화/비활성화 가능)
Font Font 컨트롤에서 표시되는 텍스트의 글꼴을
가져오거나 설정
MousePosition Point 화면 좌표에서 마우스 커서의 위치를 가져옴
Padding Padding 컨트롤 내의 여백을 가져오거나 설정
Size Size 컨트롤의 높이와 너비를 가져오거나 설정
Visible Boolean 컨트롤과 모든 해당 자식 컨트롤이 표시되는지를 나타내는 값을 가져오거나 설정
(즉, 표시할건지 숨길건지 설정가능)

 

마이크로소프트의 API브라우저 문서를 보고 이건 좀 쓸 것 같은데 싶은 걸 추려봤는데 거의 다 뭐가 뭔지 모르겠어서 조금밖에 못 가져왔다. 더 자세한 프로퍼티는 다음 링크를 참고!

*링크는 컨트롤 클래스만 나오지만 컨트롤 하위의 클래스(라벨, 픽쳐박스, 버튼 등)들을 보면 또 그에 맞는 세부속성이 더 있는 것 같다. 필요한 건 검색해서 찾아보자!

https://learn.microsoft.com/ko-kr/dotnet/api/system.windows.forms.control?view=windowsdesktop-8.0

 

Control 클래스 (System.Windows.Forms)

시각적으로 표시되는 구성 요소인 컨트롤의 기본 클래스를 정의합니다.

learn.microsoft.com