Ich habe ein Diagramm und ich möchte, dass der Benutzer die Werte sehen, wenn der Zeiger auf den Punkten ist. Durch digEmAll Hilfe auf der Seite mit finding the value of the points in a chart, kann ich den folgenden Code schreiben:Werte der Diagrammpunkte sehen, wenn die Maus auf Punkte ist
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";
}
}
}
durch den obigen Code, kann der Benutzer die Werte sehen, wenn der Zeiger in der Nähe von ein series.But jetzt Wie kann Ich lasse den Benutzer die Werte nur sehen, wenn der Zeiger auf die Punkte ist? ersetzt I
int k = result.PointIndex;
if (k >= 0)
{
chart1.Series[0].Points[k].ToolTip = "X=#VALX, Y=#VALY";
}
statt
chart1.Series[0].ToolTip = "X=#VALX, Y=#VALY";
mein problem.but es zu lösen war nicht usefull.
perfekt für die primäre Achse Arbeiten. Aber die Bedingung '(Math.Abs (pos.X - pointXPixel) <2 && Math.Abs (pos.Y - pointYPixel) <2)' schlägt für die sekundäre Achsenreihe fehl. –
@RameshDurai: Ja richtig, dieser Code berücksichtigt nur die primäre Achse. – digEmAll