Tengo un gráfico y quiero que el usuario vea los valores cuando el puntero está en los puntos. Mediante el uso de la ayuda de digEmAll en la página finding the value of the points in a chart, podría escribir el siguiente código:ver los valores de los puntos del gráfico cuando el mouse está en los puntos
Point? prevPosition = null;
ToolTip tooltip = new ToolTip();
void chart1_MouseMove(object sender, MouseEventArgs e)
{
var pos = e.Location;
if (prevPosition.HasValue && pos == prevPosition.Value)
return;
tooltip.RemoveAll();
prevPosition = pos;
var results = chart1.HitTest(pos.X, pos.Y, false, ChartElementType.PlottingArea);
foreach (var result in results)
{
if (result.ChartElementType == ChartElementType.PlottingArea)
{
chart1.Series[0].ToolTip = "X=#VALX, Y=#VALY";
}
}
}
por el código anterior, el usuario puede ver los valores cuando el puntero es cerca de un series.But ahora ¿Cómo puede Dejo que el usuario vea los valores solo cuando el puntero es en los puntos? que sustituyen
int k = result.PointIndex;
if (k >= 0)
{
chart1.Series[0].Points[k].ToolTip = "X=#VALX, Y=#VALY";
}
en lugar de
chart1.Series[0].ToolTip = "X=#VALX, Y=#VALY";
a resolver mi problema.Pero No fue muy útil.
Funcionando perfectamente para el eje primario. Pero la condición '(Math.Abs (pos.X - pointXPixel) <2 && Math.Abs (pos.Y - pointYPixel) <2)' falla para la serie de ejes secundarios. –
@RameshDurai: sí, este código solo considera el eje primario. – digEmAll