2017-08-30 65 views
0

我正在使用zedgraph和datagridview的窗體應用程序。 datagridview對於線圖中的每個點都有一行,當用戶單擊圖中的一個點時,我希望它突出顯示datagridview中的等效行。ZedGraph:檢查線圖上點擊哪個數據點?

那麼如何找出用戶點擊了哪個點? (我不需要datagridview部分的任何代碼)。

+0

不熟悉ZedGraph。在MSChart中,您將在Mouseclick事件中執行HitTest。 – TaW

回答

0

我想通了。您可以使用GraphPane.FindNearestObject來查找點擊的點。

似乎nearestObjectnull,如果你不點擊一個點,爲LineItem類型的,如果你這樣做,然後index會告訴你點擊了哪個點。

private void zedGraphControl_MouseClick(object sender, MouseEventArgs e) 
{ 
    object nearestObject; 
    int index; 
    this.zedGraphControl.GraphPane.FindNearestObject(new PointF(e.X, e.Y), this.CreateGraphics(), out nearestObject, out index); 
    if (nearestObject != null && nearestObject.GetType() == typeof(LineItem)) 
    { 
     // 'index' is the index of that data point 
     dataGridView.CurrentCell = dataGridView.Rows[index].Cells[0]; 
    } 
}