히포차트4 - 마우스 드래그 이벤트 잡기 (Zoom 기능 응용) (1)



먼저 아래와 같은 설정과 코드를 작성할 수 있습니다. 


히포차트 이벤트에서 이벤트 핸드러를 생성합니다. 



속성창에서 IsDrag 를 True 로 변경합니다. 



다음 아래와 같은 샘플 코드를 만듭니다. 

  private void Draw2()

        {

            SeriesList sList = new SeriesList();

            sList.ChartType = ChartType.Column; 


            Series sr = new Series(); 


            SeriesItem item1 = new SeriesItem(2861);

            SeriesItem item2 = new SeriesItem(3861);

            SeriesItem item3 = new SeriesItem(4861);


            sr.items.Add(item1);

            sr.items.Add(item2);

            sr.items.Add(item3);


            sList.SeriesCollection.Add(sr);


            this.hHippoChart1.SeriesListDictionary.Add(sList);

            this.hHippoChart1.DrawChart();

        }


        private void hHippoChart1_ChartMouseDrag(object sender, EventArgs e)

        {

            // 마우스로 드래그할 때 발생

        }


        private void hHippoChart1_ChartMouseUp(object sender, MouseEventArgs e)

        {

            MessageBox.Show("마우스를 놓았다!");

        }




위와 같이 코드를 작성할 경우 드래그 할 때 점선의 네모 박스가 만들어 지고 mouseup 이벤트 핸들러를 통해 마우스를 놓는 순간을 잡을 수 있습니다. 


chartmouseup 이벤트에서는 Zoom이 되는 코드를 생성할 수 있는데 이는 드래그 시 네모 박스에 잡힌 시리즈아이템만을 다시 그림으로써 확대 효과를 줄 수 있습니다. 


위 속성창에서도 보이는 DragRectangle 의 좌표와 차트의 상대 좌표를 응용하여 잡힌 막대, 라인 등을 집어낼 수 있는데 이에 대해서는 다음 강좌에서 보다 자세히 다뤄보겠습니다. 

사업자 정보 표시
히포차트 | 하영대 | 경기도 성남시 수정구 복정동 631-5 401 | 사업자 등록번호 : 129-34-55719 | TEL : 031-751-6673 | Mail : hippochart@gmail.com | 통신판매신고번호 : 제 2010-경기성남-1203호 | 사이버몰의 이용약관 바로가기

Posted by 리바이 병장

댓글을 달아 주세요



/* 다음 웹인사이드 로그 분석*/