[C#] 가계부 만들기 - 카테고리 설정 - ContextMenu

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

안녕하세요 명월입니다.
저번주에 포스팅 했던 가계부를 다시 이어서 진행하겠습니다. 틈틈히 작성해서 그런지 실 코딩 부분이 확 앞으로 나갔네요... 부지런히 포스팅하겠습니다.


내용을 보시면 이전보다 프레임부터 많은 부분이 변경이 있었습니다. 하나하나 살펴 보고 가겠습니다.


먼저 카테고리 부분에 마우스 오른쪽이던 왼쪽을 누르면 ContextMenu 가 나와서 추가, 수정, 삭제 부분이 있어서 추가 삭제가 가능하도록 만들어 보겠습니다.


먼저 디지인 뷰에서 추가 해 보도록하겠습니다.



먼저 각 트리뷰에 왼쪽 또는 오른쪽 마우스 버튼을 누르면 Context Menu를 띄워보도록하겠습니다.



선택을 하면 클릭 SelectIndex를 멤버함수에 입력을 합니다. 그리고 특이 사항은 레벨이 0 일때 즉 루트는 수정, 삭제가 없습니다.. 그리고 레벨이 2 일때 (최하위 등급)는 더 하위에 객체를 생성하지 못하게 Enabel 을 걸겠습니다.


출금도 같은 방식입니다.



결과 확인 해 보도록 하겠습니다.



루트에서는 추가 이외에는 비활성화된 화면입니다.



이 화면은 1단계로써 모든 버튼이 활성화 되어있습니다.



(포스팅 하다가 느꼈는데 실수로 한국어로 작성해 버렸네요.. ㅎㅎ 예제 소스에는 일본어로 수정해 놨습니다.^^)
2단계의 노드에서는 추가는 비활성화 수정,삭제버튼은 활성화가 되어있습니다.


이제 Contenxt 메뉴에서 추가, 수정, 삭제 부분의 이벤트를 작성해 보도록 하겠습니다.



추가 버튼을 보면 무언가를 초기화하는 느낌입니다.



수정부분도 추가와 크게 다른점은 없고 Button 의 이름을 가지고 있는 변수의 Enable 값만 다를 분입니다. 그럼 확인해 보겠습니다.



그렇습니다. 위 입력 패널의 초기화 부분이었습니다. 그럼 마지막으로 삭제 를 확인해 보겠습니다.



삭제 부분은 로직이 조금 다릅니다. 로직을 살펴보면 알 수 있지만 먼저 삭제 메시지를 발송합니다. 그리고 노드가 없으면 에러를 발송하고 Return 처리합니다.
그 뒤에 보면 처리 되기 전에 MW_CategoryDataSet이라는 인스턴스 클래스로 처리를 하고 Treeview 노드를 삭제하는 로직이네요.


그럼 다음 포스팅에서는 MW_CategoryDataSet의 클래스에 대해 알아보도록 하겠습니다.


예제 소스는 옆에 예제 소스 카테고리에 담아두겠습니다.



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