2017-03-02 260 views
2

我想點擊我的餅圖,我從C#的Windows窗體工具箱中獲取藥物,並顯示該切片的詳細信息。現在,這是我點擊的代碼。我想知道這是否是正確的路線或我應該採取什麼路線。餅圖切片點擊

private void chart1_Click(object sender, EventArgs e) 
{ 
    HitTestResult results = chart1.HitTest((e as MouseEventArgs).X, (e as MouseEventArgs).Y); 
} 

我也using System.Windows.Forms.DataVisualization.Charting;

回答

4

是的,這是正確的appoach。

現在,您可以測試DataPoint是否有效等。

我會用MouseClick順便說一句,它在默認情況下MouseEventArgs

你甚至可以編寫代碼MouseMove事件,並使用相同則hitTest控制光標表明用戶在數據點..

下面是一個例子:

private void chart1_MouseClick(object sender, MouseEventArgs e) 
{ 
    HitTestResult hit = chart1.HitTest(e.X, e.Y, ChartElementType.DataPoint); 

    if (hit.PointIndex >= 0) 
    { 
     DataPoint dp = chart1.Series[0].Points[hit.PointIndex]; 
     label1.Text = "Value #" + hit.PointIndex + " = " + dp.XValue; 
    } 
} 

private void chart1_MouseMove(object sender, MouseEventArgs e) 
{ 
    HitTestResult hit = chart1.HitTest(e.X, e.Y); 
    var dp = hit.Object as DataPoint; 
    Cursor = (dp is null) ? Cursors.Default : Cursors.Hand; 
} 

注意的兩個事件使用不同的方式來測試一擊。

enter image description here