[Windows Forms 응용 with C#] 4.4.2 도서 정보 수정 Form 구현

프로젝트에 ModifyForm을 추가하고 자식 컨트롤을 배치합니다. ModifyForm에는 도서 목록을 항목으로 표시하는 ListView 컨트롤과 선택한 도서의 정보를 표시할 컨트롤로 PictureBox 컨트롤, DateTimePicker 컨트롤 TextBox 컨트롤을 배치합니다. 그리고 이미지를 변경할 때와 변경 및 취소할 때 사용할 Button 컨트롤을 배치합니다.

[그림 4.7] ModifyForm 자식 컨트롤 배치
[그림 4.7] ModifyForm 자식 컨트롤 배치
 다음은 ModifyForm의 자식 컨트롤 Name과 형식입니다.

No Name 컨트롤 형식 설명
1 lv_diary ListView 도서 목록(View: Details)
2 pb_image PictureBox 이미지(SizeMode: StretchImage)
3 btn_iamge Button 이미지 선택
4 dtp_date DateTimePicker 날짜 선택 및 표시
5 tbox_description TextBox 설명
6 btn_submit Button 변경 요청
7 btn_cancel Button 취소 요청

디폴트 이미지 파일명을 상수로 정의하세요.

이미지 이름 멤버를 선언하고 디폴트 이미지 이름으로 초기화합니다.

도서 관리자 단일체를 사용하기 편하게 속성을 정의합니다.

BookManager 클래스의 정적 멤버 BM을 그대로 By Pass 합니다.

ModifyForm의 Load 이벤트 핸들러를 등록합니다.

pb_image의 ImageLocation 속성을 디폴트 이미지 파일명으로 설정합니다.

도서 관리자 개체에게 도서 목록을 요청합니다. 그리고 도서 목록을 순차적으로 ListView에 추가합니다.

도서 일련 번호와 제목으로 문자열 배열을 만들고 이를 인자로 ListViewItem 개체를 생성합니다.

리스트 항목으로 생성한 ListViewItem 개체를 추가합니다.

항목을 선택했을 때 도서 개체를 쉽게 참조할 수 있게 ListViewItem 개체의 Tag 속성에 설정합니다.

이미지 버튼의 클릭 이벤트 핸들러를 등록합니다.

파일 열기 대화 상자를 열거 선택한 이미지로 설정합니다. 이 부분은 RegForm에서 했던 작업과 일치합니다.

리스트 뷰의 SelectedIndexChanged 이벤트 핸들러를 등록합니다.

선택 항목의 개수가 0이면 이벤트 핸들러를 종료합니다.

선택한 ListViewItem의 Tag 속성을 BookStory 형식 개체를 참조합니다.

선택한 도서 개체로 컨트롤의 속성을 설정합니다.

제출 버튼의 Click 이벤트 핸들러를 등록하세요.

선택 항목의 개수가 0이면 이벤트 핸들러를 종료합니다.

선택한 ListViewItem의 Tag 속성을 BookStory 형식 개체를 참조합니다.

도서 정보에 관한 컨트롤의 속성을 얻어와서 도서 관리자 개체에게 정보 변경을 요청합니다.

▷ ModifyForm.cs