2011-08-04 4 views
0

내 응용 프로그램에서 MSChartControl을 사용하고 있습니다. 차트 컨트롤에서 차트 컨트롤의 선택 메커니즘을 사용하여 ChartArea의 CursorX를 사용하여 이미지 범위를 선택하려는 이미지를 표시합니다.선택시 MSChartControl 이상한 동작

SelectionRangeChanged 이벤트에서 사용자가 선택을 완료했음을 알리고 선택되지 않은 영역의 색을 지정하고 원래 선택을 숨기려고합니다.

private void chartTopoAP_SelectionRangeChanged(object sender, CursorEventArgs e) 
{ 
    int Start = (int)e.NewSelectionStart; 
    int End = (int)e.NewSelectionEnd; 

    MathUtil.SwapIf(Start > End, ref Start, ref End); 

    mySelectedRange = new Tuple<int, int>(Start, End); 

    chartTopoAP.ChartAreas[0].CursorX.SetSelectionPosition(double.NaN, double.NaN); 
    chartTopoAP.Invalidate(); 
    chartTopoAP.Update(); 
} 

를 페인트에서 (나는 그런 방법을 발견하지 않았습니다 적어도)에는 ClearSelection가 없기 때문에

, 나는 커서 처음에는 선택이 이루어지지 않았습니다 때 가지고있는 값으로 선택을 설정 방법 나는 내 자신의 그림을.

이것은 윈도우와 chartcontrol의 크기를 변경하지 않으면 작동하는 것 같습니다. 그 분명히> 결과입니다 -

1) 나는 창을 시작하고 나는 chartcontrol의 크기를 조절) 뭔가 2를 선택 (큰/작은은 3) 내가

다른 선택을 할) 문제가되지 않습니다 컨트롤은 내부적으로 일부 그래픽을 버퍼링하고 나에게 컨트롤의 크기를 조정하기 전에 가지고있는 크기의 차트를 보여줍니다.

내가 선 작동

chartTopoAP.ChartAreas[0].CursorX.SetSelectionPosition(double.NaN, double.NaN); 

을 주석 경우

. 그런데 어떻게 선택을 취소 할 수 있습니까?

감사 마틴

답변

1

줌 설정을 scaleview 관련이있을 것으로 보인다. 추가 할 경우

chartTopoAP.ChartAreas[0].AxisX.ScaleView.ZoomReset(); 

을 선택하면 증상이 사라집니다.

+0

완벽하게 작동했습니다. 많은 감사합니다. – msedi