从MS Chart控件(WinForm)的单击列中获取自定义标签

时间:2014-10-04 05:42:51

标签: c# winforms charts mschart

我在WinForm项目中使用MS Chart控件: enter image description here

我想写一些代码来获取点击列的标签,例如,如果用户点击了它返回的一列" A [EAF / LF]"如果用户点击B列,则返回" B [VD / VOD]"。 所以我编写了以下代码来查找图表中的点击列并显示自定义标签:

private void chart_MouseDown(object sender, MouseEventArgs e)
{
    var result = chart.HitTest(e.X, e.Y);

    if (result.ChartElementType == ChartElementType.DataPoint)
    {
       var selectedColumn = chart.Series[0].Points[result.PointIndex];
       var customLabel = selectedColumn.AxisLabel + "[ "
                         result.Axis.CustomLabels[result.PointIndex] + " ]";
       // other codes
     }
}   

但在运行代码时,result.Axisnull。有谁知道问题在哪里?

1 个答案:

答案 0 :(得分:1)

Axis属性仅在HitTest返回的对象与轴关联时才有值。例如,刻度线或带状线。对于DataPoint对象,它返回null

要获得CustomLabels,您可以使用以下代码。

chart.ChartAreas[chart.Series[0].CharArea].AxisX.CustomLabels[result.PointIndex];