private void chart1_MouseMove(object sender, MouseEventArgs e) { var pos = e.Location; if (_prevPosition.HasValue && pos == _prevPosition.Value) { return; } _tooltip.RemoveAll(); _prevPosition = pos; var results = chrtUren.HitTest(pos.X, pos.Y, false, ChartElementType.DataPoint); foreach (var result in results) { if (result.ChartElementType != ChartElementType.DataPoint) { continue; } var prop = result.Object as DataPoint; if (prop == null || chrtUren.Series[1].Points.Contains(prop)) { continue; } var pointXPixel = result.ChartArea.AxisX.ValueToPixelPosition(prop.XValue); var pointYPixel = result.ChartArea.AxisY.ValueToPixelPosition(prop.YValues[0]); if (Math.Abs(pos.X - pointXPixel) < 2 && Math.Abs(pos.Y - pointYPixel) < 2) { _tooltip.Show(StringLayer.GetToolTip(prop), chrtUren, pos.X, pos.Y - 15); } } }