2011-12-01 5 views
1

MS 차트를 사용하여 차트를 만듭니다. 이제 차트에 사용자가 마크 포인트를 클릭하면 좌표 을 가져올 위치의 마크 포인트가 있습니다.마우스 클릭시 MS 차트에서 마크 위치 얻기

마크 포인트를 클릭 할 때 마크 포인트에 대한 좌표 (x 축 및 y 축)를 다시 얻을 수 있도록 차트에서 상호 작용을 원합니다. 그래프에 대한 예를 들어

: -

graph

주황색 도트 내가 그 지점의 좌표,을 얻으려면 파란색 점을 클릭에

,

예를 들어 첫 번째 블루 포인트는 (2011년 10월 11일 49)

감사

상기 MS 차트 샘플로부터

답변

0

(http://archive.msdn.microsoft.com/ 난에만 X 축의 지점 (1,2,3,4)의 인덱스를 받고있어

private void chart1_MouseDown(object sender, System.Windows.Forms.MouseEventArgs e) 
{ 
    // Call Hit Test Method 
    HitTestResult result = Chart1.HitTest(e.X, e.Y); 

    if(result.ChartElementType == ChartElementType.DataPoint) 
    { 
    // index of the clicked point in its series 
    int index = result.PointIndex; 
    // actual values 
    Console.WriteLine(result.Series.Points[result.PointIndex].XValue); 
    Console.WriteLine(result.Series.Points[result.PointIndex].YValues[0]);                
    } 
} 
+0

:의 MSChart) 섹션 "차트 기능> 인터랙티브 차트 데이터 포인트> 선택" 참조. 포인트를 클릭하면 실제 x 축 레이블 (날짜)을 어떻게 얻을 수 있습니까? –

+0

DataBindCrossTable을 사용하여 데이터를 차트에 바인딩합니다. –

+0

값을 가져 오는 방법을 보여주는 예제는 [here] (http://stackoverflow.com/questions/36869585/spline-chart-how-to-get-the-clicked-item/36870298#36870298)를 참조하십시오. double에서 datetime으로 변환해야 할 수도 있습니다. – TaW

1
<pre>void chart_MouseDown(Object sender, System.Windows.Forms.MouseEventArgs e) 
{ 
    HitTestResult result = chart.HitTest(e.X, e.Y); 
    switch(result.ChartElementType) 
    { 
    case case ChartElementType.DataPointLabel: 
     DateTime start = DateTime.FromOADate(result.Series.Points[result.PointIndex].XValue); 
     ... 
     break; 
    } 
}</pre>