11.1.2 EH 응용 만들기

이제 EH 응응을 만듭시다.

EH 응용의 메인 폼에는 검색 질의를 입력하는 TextBox 컨트롤과 검색 요청하는 버튼 컨트롤, 결과 목록을 보여줄 RUListControl을 배치합니다. 보다 효과적으로 배치하는 것을 원하시면 도구 상자의 컨테이너 탭에 있는 컨트롤을 이용하세요. 여기에서는 컨테이너 컨트롤을 이용하는 부분은 설명에서 과감히 생략합니다.

[그림 11.3] EH 메인 폼 자식 컨트롤 배치
[그림 11.3] EH 메인 폼 자식 컨트롤 배치
번호 컨트롤 이름 컨트롤 유형 설명
1 tbox_query TextBox 질의 입력 창
2 btn_search Button 바로가기 버튼
3 rlc_result RUListControl 결과 항목 시각화

[표 11.2] RankedUrlControl의 자식 컨트롤

검색은 앞에서 만든 검색 서비스를 이용하는 클라이언트입니다. 검색 서비스는 .NET 리모팅 기술을 사용하므로 System.Runtime.Remoting 어셈블리를 참조 추가하세요. 또한 검색 서비스에서 서버와 클라이언트가 공통으로 사용하려고 만든 GenericSearchLib 도 참조 추가합니다. 물론 WSE_Core 라이브러리도 참조 추가해야겠죠.

검색을 위해 .NET 리모팅을 통해 GenericSearch 개체를 참조할 수 있어야 하므로 이를 참조할 멤버 필드를 선언합시다.

메인 폼의 Load 이벤트 핸들러를 추가합니다.

이벤트 핸들러에서는 검색 서비스를 이용하여 GenericSearch 개체를 참조합니다.

 

검색 버튼의 클릭 이벤트 핸들러를 추가합니다. 이벤트 핸들러에서는 검색하여 검색 결과를 처리합니다. 이 부분은 별도의 메서드로 작성합시다.

검색을 시도하여 결과를 처리하는 Search 메서드를 작성합시다.

먼저 결과 목록을 지워줍니다.

그리고 검색 질의를 입력 인자로 검색 요청합니다.

검색 결과 목록의 각 결과인 순위화 한 페이지 개체를 입력 인자로 결과 항목을 추가합니다.

마지막으로 바로가기 버튼 클릭했을 때 이벤트 핸들러를 추가합니다.

이벤트 핸들러에서는 검색 결과인 순위화 한 페이지 개체를 인자로 브라우저를 생성하여 보여줍니다. EHBrowser는 별도의 폼으로 작성합시다.

▷ MainForm.cs

 

Windows Form 추가 메뉴를 통해 EHBrowser 폼을 추가합시다.

EHBrowser 폼에는 자식 컨트롤로 페이지 제목과 주소 및 페이지 내용을 보여주는 자식 컨트롤을 배치합니다.

[그림 11.4] EHBrowser폼 자식 컨트롤 배치
[그림 11.4] EHBrowser폼 자식 컨트롤 배치
번호 컨트롤 이름 컨트롤 유형 설명
1 lb_title_info Label 정보 표시
2 lb_title Label 타이틀
3 lb_addr_info Label 정보 표시
4 lb_addr Label 사이트 주소
5 wb WebBrowser 페이지 정보 표시

[표 11.3] RankedUrlControl의 자식 컨트롤

EHBrowser 컨트롤의 생성자는 순위화 한 페이지 개체를 입력 인자로 받는 것으로 변경하세요.

생성자 메서드에서는 마법사에 의해 작성한 InitializeComponent 메서드 호출로 초기 자식 컨트롤 배치 등을 마친 후에 입력 인자로 받은 순위화 한 페이지 개체의 속성으로 자식 컨트롤의 Text속성을 설정합니다. 그리고 페이지 주소를 입력 인자로 WebBrowser 컨트롤인 wb의 Navigate 메서드를 호출합니다.

▷ EHBrowser.cs

 

검색 서비스를 가동한 후에 EH 응용이 잘 동작하는지 테스트를 해 보세요.