C#

[C#] 예제 문제 풀기 12~14번 (Feat.통신프로그램 만들기)

AlexHouse 2021. 5. 7. 12:24
728x90

예제-12

Stackpanel을 이용하여

다음 그림 출력을 만들어보아라.

예제-12
코드

다음과 같이 작성하여도 같은 값이 나온다. 

 

다른방법

다음 방법이 무슨 차이가 있는지 모르겠지만,

만드는 방법의 가지각색 이라고 생각한다.

 

예제-13

같은 것은 새로로 만들어보아라

예제-13
코드

단순하게 Orientation="Vertical"
Orientation="Horizontation"

바꿔준다.

 

예제-14

다음을 출력화면을
코딩해보자

예제-14

 

 

첫 번째

다음과 같이 처음에는 가상의 행을 나눠준다.
Grid.RowDefinition 은 행을 나눈다는 의미고

Height는 각 행별 높이를 정하겠다는 뜻이다.

Grid는 전체화면을 얘기한다.

 

첫 번째 출력

첫 번째 행을 나눈다음 출력을 하면 

이런식으로 가상의 선이 행이 나뉘어진다.

그리고 이와 같이 Grid 0 ~3 으로 정의된다.

 

두 번째 

첫 번째 Grid.Row="0" 안에다가 Vertical , 수직형으로 정의한다.

그리고 첫번째 Stackpanel을 닫는다. Stackpanel은 Grid를 나누는 좀 더 작은 단위라고 볼 수있음

Margin="2" 를 넣는이유는 칸 사이에 겹치는게 되는걸 방지하기위해 조금 띄어쓰기라 볼 수 있다.

 

두 번째 출력

 

Grid 사용

만약 StackPanel을 사용하기 싫다면 다음과 같이

Grid를 이용하여 직접 하나하나 나눠주어도된다.

그런데 굳이 돌아가진 말자!

 

맨 위 텍스트블럭

그 아래 콤보박스, 버튼1, 버튼2

 

세 번째

Grid Grid.Row="2" Grid 2의 공간에다가 넣어줘야된다.

Grid 2 안에서 두개의 행으로 나눌건데,  첫 번째는 높이를 25정도 부여

두 번째는 전체공간 다사용 하도록 하고,

높이 25되는 공간에 텍스트 블럭 "수신"를 입력

텍스트 박스 남은 공간에 다 차지 하도록함

 

세 번째 출력
네 번째

이 부분이 가장 어려운 것 같다.

Grid 3 공간의 부분을 상하로 나누고  높이를 조금만 분할 하여
"송신" 텍스트 블럭을 만들어준 다음에

좌우로 나누어 주어서 텍스트 박스와 "전 송" 버튼을 분리해준다.

좌우를 분리하는 함수는 Grid.ColumnDefinitions 인 것을 잊지말자.

 

네 번째 출력

 

난 여기서 의구심이 들었다.

Grid.Row ="0" 이면 어떻게 될까?

 

Grid.Row="0" 작성

 

출력값

윗 줄에 있던 "송 신" 텍스트블럭을 가리게된다. 

Grid.Row="0" 이라고 하였는데 왜 첫 번째 줄로 안올라가고 

Grid 3에 있느냐 하면은 이미 우리가 공간을 Grid.Row="3" 안쪽에서 

작업하는 환경을 만들어 놓았기 때문이다.

 

Grid3선언

 

그러니까 정리해보자면, 
처음에 Grid (0~3) 으로 나뉘어진다.

하지만 우리가 Grid 속에서 또 줄을 나눔으로써

Grid 1,2,3 ... 의 의미가 달라지는 것이다.

 

 

 

 

감사합니다.😊

728x90

'C#' 카테고리의 다른 글

[C#] 의료기기 통신  (0) 2021.05.28
[C#] 시리얼 프로그램 포트 연결  (0) 2021.05.14
[C#] 예제 문제 풀기 8~11번  (0) 2021.04.30
[C#] 예제 문제 풀기 1~7번  (0) 2021.04.24
[C#] Array, Foreach, Methods  (0) 2021.04.05