[Windows Forms 응용 with C#] 4.4.1 도서 등록 Form 구현

이제 사용자와 상호작용하는 폼을 구현합시다.

프로젝트에 RegForm을 추가하고 자식 컨트롤을 배치합니다.

정보를 표시하는 Label 컨트롤을 제외하고 9개의 컨트롤을 배치합니다. 일련 번호를 표시할 Label, 제목과 내용을 입력할 TextBox, 제출과 취소와 이미지 선택을 위한 버튼, 선택한 이미지를 표시할 PictureBox, 날짜를 선택하는 DateTimePicker와 MonthCalendar입니다.

[그림 4.6] RegForm 자식 컨트롤 배치
[그림 4.6] RegForm 자식 컨트롤 배치
 다음은 RegForm의 자식 컨트롤의 Name 및 형식입니다.

No Name 컨트롤 형식 설명
1 lb_no Label 도서 일련 번호
2 tbox_title TextBox 제목
3 tbox_description TextBox 설명
4 btn_submit Button 도서 등록
5 btn_cancel Button 취소
6 pb_image PictureBox 이미지 (SizeMode: StretchImage)
7 btn_image Button 이미지 선택
8 dtp_date DateTimePicker 날짜 선택 및 표시
9 mc_date MonthCalendar 날짜 선택 및 표시

디폴트로 표시할 이미지를 리소스에 추가하세요. 여기에서는 default.jpg 파일명의 이미지를 리소스에 추가하였습니다.

이미지 개체를 위해 멤버 필드를 선언합니다.

도서 관리자 개체를 참조하기 쉽게 속성을 정의합니다.

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

이미지 이름을 위해 멤버 필드를 선언합니다.

속성 창을 이용해서 RegForm의 Load 이벤트 핸들러를 등록하세요.

디폴트 이미지로 PictureBox의 이미지를 설정합니다.

디폴트 이미지를 bm에 설정합니다.

도서 관리자 개체를 통해 추가할 때 사용할 일련 번호를 구하여 일련 번호를 표시할 Label의 Text 속성을 설정합니다.

이미지 버튼의 클릭 이벤트 핸들러를 등록합니다. 앞으로 컨트롤의 이벤트 핸들러를 등록하는 것은 속성 창을 이용하세요. 단순히 코드를 따라 친다고 동작하지 않습니다.

파일을 선택할 수 있게 파일 열기 대화 상자를 만들어 ShowDialog 메서드를 호출합니다.

선택한 파일 이름으로 pb_image 컨트롤의 ImageLocation 속성을 설정합니다.

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

입력한 정보를 얻어옵니다.

도서 관리자 개체의 AddBook 메서드를 호출합니다.  만약 추가 실패하면 메시지 창을 띄워 사용자에게 알려줍니다.

도서 관리자 개체에게 다음에 추가할 도서 일련 번호를 확인하여 일련 번호를 표시할 Label 컨트롤의 Text 속성을 설정합니다.

다른 속성을 리셋합니다.

MonthCalendar 컨트롤의 DateChanged 이벤트 핸들러를 등록합니다.

인자로 받은 값의 Start 속성으로 DateTimePicker 컨트롤의 Value 속성을 설정합니다.

DateTimePicker 컨트롤의 ValueChanged 이벤트 핸들러를 등록합니다.

MonthCalendar 컨트롤의 SetData 메서드를 호출하여 날짜를 설정합니다.

▷ RegForm1.cs