Suchen von Datenpunkten in Diagrammsteuerelementen
Sie können die X- und Y-Werte von Datenpunkten in einer Reihe nach einem Wertebereich oder einem bestimmten Wert durchsuchen.Die Suche nach Datenpunkten mit bestimmten Werten ist in folgenden Situationen hilfreich:
Sie möchten einen Wertbereich prüfen.
Sie möchten das Erscheinungsbild von Punkten mit einem bestimmten Wert ändern.
Sie möchten Punktbezeichnungen festlegen.
Sie möchten die Position eines Punkts für eine benutzerdefinierte Zeichnung verwenden.
Suchen von Datenpunkten
Die Series.Points-Auflistungseigenschaft stellt verschiedene Methoden für die Suche nach Punkten bereit.
FindValue
Gibt den ersten Punkt mit dem angegebenen Wert in einer Reihe zurück.FindMaxValue
Gibt den ersten Punkt mit dem größten Wert in einer Reihe zurück.FindMinValue
Gibt den ersten Punkt mit dem kleinsten Wert in einer Reihe zurück.
Hinweis
Diese Methoden geben einen NULL-Wert zurück, wenn keine Punkte mit den Suchkriterien übereinstimmen.
Verwenden Sie diese Methoden in einer Schleife, um alle mit einem Suchkriterium übereinstimmenden Punkte zu suchen.Um alle Punkte ab einem vordefinierten Startindex zu suchen, verwenden Sie eine der Methoden mit einem startFromIndex-Parameter.Wenn Sie diesen Parameter bereitstellen, verwendet die Methode diesen zudem zum Angeben des Index des zurückgegebenen Datenpunkts.
Im folgenden Code wird veranschaulicht, wie Sie Datenpunkte anhand des ersten Y-Werts suchen.
' Find the first data point with the maximum Y value.
Dim maxDataPoint As DataPoint = mySeries.Points().FindMaxValue()
' Find the first data point with the minimum Y value.
Dim minDataPoint As DataPoint = mySeries.Points().FindMinValue()
' Find the first data point with a first Y value of 10.
Dim dataPoint As DataPoint = mySeries.Points().FindValue(10.0)
// Find the first data point with the maximum Y value.
DataPoint maxDataPoint = mySeries.Points().FindMaxValue();
// Find the first data point with the minimum Y value.
DataPoint minDataPoint = mySeries.Points().FindMinValue();
// Find the first data point with a first Y value of 10.
DataPoint dataPoint = mySeries.Points().FindValue(10);
Um einen Wert, z. B. X oder Y2, zu suchen, geben Sie den Namen des Werts an.Im folgenden Code wird veranschaulicht, wie Sie Datenpunkte anhand des X-Werts suchen.
' Find first data point with the maximum X value.
Dim maxDataPoint As DataPoint = mySeries.Points().FindMaxValue("X")
' Find the first data point with the minimum second Y value.
Dim minDataPoint As DataPoint = mySeries.Points().FindMinValue("Y2")
' Find first data point with an X value of "1/1/2001".
Dim dataPoint As DataPoint = mySeries.Points().FindValue(DateTime.Parse("1/1/2001").ToOADate(), "X")
// Find first data point with the maximum X value.
DataPoint maxDataPoint = mySeries.Points().FindMaxValue("X");
// Find the first data point with the minimum second Y value.
DataPoint minDataPoint = mySeries.Points().FindMinValue("Y2");
// Find first data point with an X value of "1/1/2001".
DataPoint dataPoint = mySeries.Points().FindValue(DateTime.Parse("1/1/2001").ToOADate(), "X");
Suchen von mehreren Punkten
So suchen Sie alle Datenpunkte, die mit einem Suchkriterium übereinstimmen:
Geben Sie mithilfe des startFromIndex -Parameters den Startpunktindex der Suche an.
Rufen Sie die Methode in einer Schleife auf, und erhöhen Sie den Index bei jedem nachfolgenden Methodenaufruf.
Im folgenden Code wird veranschaulicht, wie Sie den zweiten Y-Wert nach dem Wert 10 durchsuchen und die Farbe der Ergebnisdatenpunkte zurückzusetzen.
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'Find all points with a second Y value equal to 10, and change their color.
Dim index As Integer = 0
'Find first point with a Y2 value of 10.
Dim dataPoint As DataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index)
While Not (dataPoint Is Nothing)
dataPoint.Color = Color.FromArgb(255, 128, 128)
'Find all other data points with a second Y value 10.
index += 1
dataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index)
End While
End Sub
private void Page_Load(object sender, System.EventArgs e)
{
// Find all points with a second Y value equal to 10, and change their color.
int index = 0;
// Find first point with a Y2 value of 10.
DataPoint dataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index);
while(!(dataPoint == null))
{
dataPoint.Color = Color.FromArgb(255, 128, 128);
// Find all other data points with a second Y value 10.
index++;
dataPoint = Chart1.Series("Series1").Points.FindValue(10, "Y2", index);
}
}
Siehe auch
Referenz
System.Windows.Forms.DataVisualization.Charting
System.Web.UI.DataVisualization.Charting
Konzepte
Verwenden von leeren Datenpunkten