您可以使用AxisViewChanged事件,並檢查是在可見光範圍內的一系列點。這裏是我的意思的一個例子:
void chart1_AxisViewChanged(object sender, System.Windows.Forms.DataVisualization.Charting.ViewEventArgs e)
{
var left = e.ChartArea.CursorX.SelectionStart;
var right = e.ChartArea.CursorX.SelectionEnd;
var top = e.ChartArea.CursorY.SelectionStart;
var bottom = e.ChartArea.CursorY.SelectionEnd;
foreach (var series in this.chart1.Series)
{
if (series.ChartArea == e.ChartArea.Name)
{
var pointsInRange = series.Points.Where(p => p.XValue <= right && p.XValue >= left &&
p.YValues[0] <= top && p.YValues[0] >= bottom);
if (pointsInRange.Any())
{
var minY = pointsInRange.Min(p => p.YValues[0]);
var maxY = pointsInRange.Max(p => p.YValues[0]);
// print the points in your textbox
textBox1.AppendText("Series: " + series.Name + " min visible Y=" + minY + " max visibleY=" + maxY + Environment.NewLine);
}
}
}
}
謝謝,這讓我足以讓我的牙齒進入。 – user1480025
@ user1480025:很高興能有所幫助。如果你認爲這是一個很好的答案,你應該考慮加快或接受它;) – digEmAll