Window Form을 이용한 프로젝트에서 UI를 꾸밀때 자주 사용하는 속성 중 하나가 Dock속성임.

 

Dock속성을통해 화면을 이쁘게 나누고싶어서 메뉴를 보여줄 ControlLeft / 내용을 보여줄 ControlFill로 주어서

 

화면을 좌/우로 2등분을 하고 싶은데, 생각대로 2등분되지 않고 Fill속성을 준 객체가 Left속성을 준 객체뒤에 숨어버리는 일이 발생함.

 

그래서 차선책으로 Anchor 속성을 이용하지만, Anchor의 경우에는 Form의 크기를 변경하다보면 원하는위치에 있지않고 깨지는 현상이 발생함.

 

 

따라서 해당 내용에 대해 검색하다가 stackoverflow에서 아래와 같은 답변을 확인함.

(https://stackoverflow.com/questions/154543/panel-dock-fill-ignoring-other-panel-dock-setting?utm_medium=organic&utm_source=google_rich_qa&utm_campaign=google_rich_qa)

 

 

답변내용을 요약하자면, Document outline(View -> Other Windows -> Document outline)라는 윈도우에서 Control의 순서를 확인 할 수 있는데,

 

같은 Level에 순서상 가장 마지막에 있는 Control이 우선순위가 제일 높다는것.

 

 

즉 위의 예시에서 든 경우에는 Document outline에서 확인하면 아래와 같이 순서가 되어있다.

 

그래서 내용 Control의 Fill이라는 속성이 우선되어 전체를 차지하고있고, 메뉴 Control의 Left속성이 적용되어 차지할 공간이 없으니,

 

그냥 겹쳐셔 Left를 차지하게 되어 겹쳐보이는 현상이 발생하는 듯 함.

 

 

메뉴 Control (Left)

내용 Control (Fill)

 

 

따라서 위의 순서를 바꾸면, Left속성을 갖는 Control이 먼저 자릴 차지하고, 남은 공간을 내용 Control이 Fill 속성으로 차지하여

 

원하는 모양대로 2등분이 되는것을 확인 할 수 있음.

 

내용 Control (Fill)

메뉴 Control (Left)

 

 

끝.

DevExpress를 설치하면 Visual Studio에 자동으로 도구상자들이 등록이 된다.

 

그런데 어떠한 문제로 DevExpress의 도구상자가 Visual Studio에 나타나지 않을 경우 아래와 같은 방법으로 해결 가능하다.

 

 

DevExpress 설치 경로(내 컴퓨터의 경우 : C:\Program Files (x86)\DevExpress\DXperience 12.2)의 Tools 폴더에 가면

 

ToolboxCreator라는 실행파일이 존재한다.

 

실행되고있는 모든 Visual Studio프로그램을 종료하고 해당 프로그램을 실행하면

 

Empty Arguments 에러가 발생하는데 말 그대로 Arguments가 없다는 이야기이다.

 

이럴때엔 cmd창으로 들어가 DevExpress 설치 경로로 이동하여

 

아래와 같이 ToolboxCreator 프로그램을 실행하며 필요한 Arguments를 입력해주면 된다.

 

>ToolboxCreator.exe /INI:toolboxCreator.ini

 

 

toolboxCreator.ini은 ToolboxCreator 프로그램을 실행할 때 필요한 구성 설정 파일인데 실제 등록될 컴포넌트의 이름이 들어가 있다.

 

기본적으로 아래와 같은 내용이 들어가있으며 파일에 내용이 비어져 있다면 아래와 같이 등록될 컴포넌트의 이름을 넣어주면 된다.

 

ASPxEditors;ASPxGauges;ASPxGridView;ASPxHtmlEditor;ASPxPivotGrid;ASPxScheduler;ASPxSpellChecker;ASPxTreeList;ASPxperience;AgData;DXCarousel;DXCharts;DXDocking;DXGrid;DXLayoutControl;DXNavBar;DXPivotGrid;DXPrinting;DXRibbon;DXUtils;Xpf.Printing;XtraBars;XtraCharts;XtraEditors;XtraGauges;XtraGrid;XtraGridRuntime;XtraLayout;XtraNavBar;XtraPivotGrid;XtraPivotGridCore;XtraPivotGridCoreRuntime;XtraPivotGridRuntime;XtraPrintingSystem;XtraReports;XtraReportsRuntime;XtraRichEdit;XtraScheduler;XtraSchedulerCore;XtraSpellChecker;XtraTreeList;XtraVerticalGrid;XtraWizard;XtraWizardRuntime;XPO

 

 

위와같이 ToolboxCreator를 실행하고 다시 Visual Studio를 실행하면 도구상자를 생성하는 작업이 진행하고 도구상자들이 추가된다.

출처: http://nightskyhunter.tistory.com/2 [별아해의 이것저것]

1. 데이터베이스 이론 (http://chouchouhome.tistory.com/admin/entry/post/)

- DB : 정보를 관리하는 전문 Application

- 안전하다

- 빠르다(인덱스)

- 프로그래밍적 제어 가능

- MySQL, Oracle 등.. ⊂ 관계형 데이터 베이스 ⊂ 데이터 베이스

- MySQL == MariaDB

- Structured , Table

- SQL : Structured Query Language

- MySQL monitor : MySQL이 설치되어있으면 다 설치되어있음. sql 서버에 접속해 Command를 보낼 수 있게 해주는 어플리케이션

- Table의 개념

: 나름 은행에 비유를 하자면,

- DB (Orcle/MySQL/CUBRID 등등...) == 신한은행/농협/국민은행

- DB 로그인(DB 계정) == 고객 (공인인증서 로그인)

- Table  == 계좌 ( 한사람이 여러 계좌를 가질 수 있듯, 여러 Table을 가질 수 있음)

- Data == 돈! (Data를 돈으로 말하기에는 비유가 맞지 않지만, 크게 이렇게 비유를 할 수 도 있을 듯.)

 

2. MySQL 실습 (https://opentutorials.org/course/1688/9398)

- PHP를 미들웨어라고도 함. 웹서버와 SQL사이에서 연결해주는 역할을 함.

- mysqli : PHP와 MySQL을 이어주는 API

- 서버 접속 : $conn = mysqli_connect('[host]','[사용자ID]','[Password]');

- DB 선택 : mysqli_select_db($conn, '[DB 이름]');

- 쿼리 : $result = mysqli_query($conn, '[Query문]');

- 출력 : $row = mysqli_fetch_assoc($result); -> 쿼리 결과를 하나의 row를 return (쿼리 결과가 5개라면, 5번 사용해줘야함.-> loop가 필요)

, 더이상 return할 결과가 없으면 NULL을 return한다.

$row['[column명]'];

- 연관 배열 : 보통의 배열과 다르게, key와 value형태로 배열을 갖고 있음.

- $b = array("title"=>"JavaScript", "description"=>"book")

- HTML에서 보내는 방식이 GET인지 POST인지에 따라 전송된 변수를 받는 함수명이 달라짐 $_GET['변수']/$_POST['변수']

- header('Location: [주소]') : redirection : PHP에서 어떤 작업이 끝나고 다른 Page로 이동하게 함. (:다음에 space 한 칸이 들어가야함.

'코딩야학 > HTML' 카테고리의 다른 글

[10일] 자바스크립트, PHP 실습  (0) 2017.06.14
[9일차] ~UI vs API  (0) 2017.06.13
[8일차] ~로그인 기능  (0) 2017.06.12
[7일차] ~코드삽입  (0) 2017.06.11
[6일차] CSS 실습  (0) 2017.06.11

1. 프로그래밍 접근방법 (https://opentutorials.org/course/1688/9380)

적정 용도의 언어를 적정 수준으로 배우세요.

- API를 탐험해보세요

- 그것을 좋아할 관객을 찾으세요

- 한계를 경험하라

- 더 잘 할 수 있는 방법에 대한 연구를 찾아라.

- 대학의 전공 과정(대학에서 배우는것과 취지를 파악해보고, 나중에 문제에 직면했을때 당면한 문제를 해결할 수 있는 부분을 학습해라.)

- Computational Thinking

- 알고리즘/데이터 스트럭쳐/디자인 패턴/프래임 웍크/컴퓨터 구조 등.....

2. 자바스크립트 실습 (https://opentutorials.org/course/1688/9381)

- HTML

-<input> 태그 

- type 속성 : text/botton/checkbox 등등으로 사용자의 입력을 받을 수 있음.

- value 속성 : 버튼이라면 버튼위에 나타나는 글씨

- onclick 속성 : 클릭 되었을 경우 정의된 JavaScript코드를 실행함.

- onfocus 속성 : 포커스가 왔을 때 발생하는 Event

- onblur 속성 : 포커스를 잃었을 때 발생하는 Event

- <div> 태그

- tag들을 묶어주는 역할.

- CSS

- HTML tag에 class 속성 : class속성을 이용해 서로다른 태그를 묶어서 CSS를 적용 할 수 있음.

- CSS에서 사용할때에는 .Class이름 / #ID이름

- tag명.class명

- JavaScript : HTML을 제어하는 언어.

- document : this와 같은 느낌. 코드가 작성된 문서 자신.

- getElementById('ID') : 해당 id를 갖고 있는 Element를 가져옴.

- [element].value : element가 갖고 있는 값을 return함.

- [element].ClassName='class 이름' : 을 이용해서 JavaScript로 class속성을 정의할 수 있음

- [element].addEventListener('행위(click)', function(){ 함수 내용 }) : element에 이벤트 리스너를 연결 할 수 있음.

소스에서 지정한 행위가 일어나는지 기다리고, 해당 행위가 발생하면 function이 실행됨.

--> 이 내용은 body태그가 닫히기 직전에 작성해 준다.

 

** disqus : 댓글 기능 / tawk : 채팅 기능

 

 

3. PHP 실습

- PHP는 서버단으로 가서 프로그래밍 한 내용대로 동작을 함. DB에서 데이터를 읽어와 화면을 구성 할 수 도 있고, listener를 이용하여

이벤트가 발생할 때 원하는 동작을 작성 할 수 도 있음. 이와같은 장점이 PHP의 생산성임.

Navigation의 구성이 달라졌을 경우 HTML로만 작성하면 모든 HTML파일에 가서 navigation부분을 공통적으로 수정해주어야 하지만,

PHP를 이용해 Navigation을 구성한다면 Navigation을 구성하기위해 읽어오는 DB나 File 에 추가되는 내용만 넣어주면 자동으로

화면에 추가가 됨.

'코딩야학 > HTML' 카테고리의 다른 글

[11일차] 데이터베이스 이론 및 실습  (0) 2017.06.19
[9일차] ~UI vs API  (0) 2017.06.13
[8일차] ~로그인 기능  (0) 2017.06.12
[7일차] ~코드삽입  (0) 2017.06.11
[6일차] CSS 실습  (0) 2017.06.11

+ Recent posts