我在WinForm项目中使用MS Chart
控件:
我想写一些代码来获取点击列的标签,例如,如果用户点击了它返回的一列" 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.Axis
为null
。有谁知道问题在哪里?
答案 0 :(得分:1)
Axis
属性仅在HitTest
返回的对象与轴关联时才有值。例如,刻度线或带状线。对于DataPoint
对象,它返回null
。
要获得CustomLabels
,您可以使用以下代码。
chart.ChartAreas[chart.Series[0].CharArea].AxisX.CustomLabels[result.PointIndex];