[C#] 가계부 만들기 - Menubar 만들기

프로젝트/가계부(1)  2013.03.11 09:00

안녕하세요 명월입니다.


이번 포스팅에서는 메뉴바를 작성해 보도록 하겠습니다.



저번 Status 개발 시에 소스 를 MainFrame 안에 넣어버린 실수를 해 버렸었습니다. 원래는 각 객체 별로 분리를 해야 나중에 유지보수도 쉽고 가독성이 높아지는데 그 날 늦게 비몽사몽으로 작업하다가 그만 MainFrame 소스랑 섞여버렸습니다. ㅜㅜ


수정을 할려고 해도 이미 메시지등 묶여버린 부분이 있어서 해체하기도 귀찮고 해서 그냥 Status 는 놔두나 Menu는 분리 시켜버리겠습니다.


먼저 Menu 컨트롤을 상속 받는 클래스를 작성하겠습니다.



사용자 정의 컨트롤이 아닌 사용자 지정 컨트롤로 해서 추가 하도록 하겠습니다.
사용자 정의 컨트롤과 사용자 지정 컨트롤은 큰 의미가 있는 차이는 아닌데요.. 단지 사용자 정의 컨트롤은 UserControl 를 상속받아서 개발하는 것이고 사용자 지정 컨트롤은 Control 를 직접 상속 받아서 개발하는 차이입니다.



보시는 바와 같이 MenuStrip을 상속 받았습니다. 그리고 디자인 뷰로 확인 해 보겠습니다.



화면에는 아무것도 나오지 않는 걸 확인 할 수 있습니다. 폼이 없기 때문에 디자인뷰에서 생성을 하지 않는 것입니다. 그렇다고 해서 디자인 설계를 전부 손코딩 해야 하는 것인가?
아닙니다. 오른쪽 아래를 보면 속성 부분에서 설정하면 되겠습니다.



여기에서 설정등을 할 수 있습니다. 우리는 Item을 등록 해보도록 하겠습니다.




먼저 소스를 나열한 뒤에 마지막에 설명 하게습니다.




타입과 셀렉트 세팅 메뉴는 CheckBox가 되는 메뉴바 입니다.
다음은 체크박스 메뉴바의 이벤트 입니다.




마지막으로 닫기와 도움말 이벤트 입니다.



도움말 메시지 박스입니다.



설명입니다.
먼저 디자인 뷰에서 시스템, 설정, 도움말 메뉴를 생성한 뒤에 하위로 시스템엔 프로그램 종료, 도움말에는 버전 정보 메뉴를 각각 넣었습니다.


가운데 설정 메뉴에서는 검색 디폴트 세팅과 타입 디폴트 세팅을 하였습니다.
이 부분은 일일히 디자인 뷰에 넣기가 더 힘들기 때문에 for문을 이용하여 동적으로 입력하였습니다. 검색은 1~12개월, 타입은 프로퍼티 값을 가져와서 입금, 출금 이 두가지로 입력이 되겠네요.


어느정도 머리속에 그려지나요?


그리고 메뉴바랑 Frame은 다른 클래스 이기 때문에 Frame으로 메시지를 보내는 형태입니다.
도움말을 클릭하면 아래에 있는 Form을 상속 받은 클래스가 선언 되어 집니다.
Onpaint 로 값을 입력한 이유는 도움말 같은 경우는 버전 빼고 고정되어 있는 수치이기 때문에 메모리를 사용하는 label를 사용할 필요가 없다는 판단하에 그냥 그려버렸습니다.


결과 화면입니다.







메뉴는 마무리 작업 중 하나로 그렇게 중요한 비중이 아니기에 간단한 설명으로 끝마치겠습니다. 이제 1단계 마무리는 로그 작업 하나만 남겨두고 있네요.
(MSSQL -> Access 전환은 제일 마지막에 작업할 예정입니다.)


1단계 본체가 완성이 되면 통계 그래프 툴을 개발할 계획입니다.


댓글 0개가 달렸습니다.
댓글쓰기