2

所以我已经看到了很多关于在悬停在数据点上时使用工具提示来显示图表数据的示例,但是我希望在我的鼠标只是在图表上而不一定在特定数据点上时显示值(即空白其他地方)。我最终还希望在数据点本身上有一个小圆圈或正方形,但这可能会在以后出现。谁能告诉我该怎么做?我将在下面包含我当前的代码。

 private void chData_MouseMove(object sender, MouseEventArgs e)
    {            
        HitTestResult pos = chData.HitTest(e.X, e.Y);
        if (pos.ChartElementType == ChartElementType.DataPoint)
        {
            string tipInfo;
            tipInfo = "Bat 1: " + ch1Array[pos.PointIndex].ToString("0.00") + Environment.NewLine + "Bat 2: " + ch2Array[pos.PointIndex].ToString("0.00") + Environment.NewLine;                
            tooltip.SetToolTip(chData, tipInfo);    
        }

    }

我猜我必须更改 if 语句参数,但我不确定是什么。
任何帮助是极大的赞赏!

4

1 回答 1

2

所以解决方案是不使用 HitTest。相反,如果您使用 PixelPositionToValue 效果会更好。我将包括下面的代码。

private void chData_MouseMove(object sender, MouseEventArgs e)
    {
        try
        {   
            int cursorX = Convert.ToInt32(chData.ChartAreas[0].AxisX.PixelPositionToValue(e.Location.X));

            tipInfo = "Bat 1: " + ch1Array[cursorX].ToString("0.00") + Environment.NewLine + "Bat 2: " + ch2Array[cursorX].ToString("0.00") + Environment.NewLine;

            tooltip.SetToolTip(chData, tipInfo);

        }
        catch { }
    }
于 2012-12-13T20:46:02.460 回答