Mam wykres i chcę użytkownika, aby zobaczyć wartości, gdy wskaźnik znajduje się na punkty. Korzystając z pomocy digEmAll w stronę finding the value of the points in a chart, mógłbym napisać następujący kod:zobaczyć wartości punktów wykresu gdy mysz jest na punkty
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";
}
}
}
powyższym kodzie, użytkownik może zobaczyć wartości, gdy wskaźnik jest blisko series.But teraz jaki sposób Pozwoliłem użytkownikowi zobaczyć wartości tylko wtedy, gdy wskaźnik jest na punktach? Wymieniłem
int k = result.PointIndex;
if (k >= 0)
{
chart1.Series[0].Points[k].ToolTip = "X=#VALX, Y=#VALY";
}
zamiast
chart1.Series[0].ToolTip = "X=#VALX, Y=#VALY";
rozwiązać mój problem.But To nie był przydatny.
doskonale Praca dla osi podstawowej. Ale warunek '(Math.Abs (pos.X - pointXPixel) <2 && Math.Abs (pos.Y - pointYPixel) <2)' nie działa dla serii osi pomocniczych. –
@RameshDurai: tak, prawda, ten kod dotyczy tylko osi głównej. – digEmAll