Некоторые подробности:
Я создаю a Dashboard, у меня есть основная панель содержимого (прокручиваемая), заполненная пользовательским элементом управления в зависимости от выбранной страницы.
В пользовательском элементе управления у меня есть несколько различных графиков и таблиц для создания информационной панели.
У меня есть специальная подсказка, которая появляется рядом с курсором при наведении курсора. Он работает отлично, пока я не нажму на любой из графиков. Затем всякий раз, когда подсказка инструмента перемещается в позицию курсора, полоса прокрутки переходит в, казалось бы, случайную позицию в верхней части пользовательского элемента управления.
Я смог сделать вывод, что переход происходит во время работы инструмента. Процесс перемещения подсказки:
Код подсказки:
Код: Выделить всё
private void ytdSalesChart_GetToolTipText(object sender, ToolTipEventArgs e)
{
Chart control = sender as Chart;
Panel parent = this.Parent as Panel;
int ScrollPosStart = parent.VerticalScroll.Value;
Debug.WriteLine($"Moving Tooltip! Scroll Pos: {ScrollPosStart}");
if (e.HitTestResult.ChartElementType == ChartElementType.DataPoint)
{
int i = e.HitTestResult.PointIndex;
int seriesI = control.Series.IndexOf(e.HitTestResult.Series);
DataPoint dp = e.HitTestResult.Series.Points[i];
if (!chartTip.Visible)
{
chartTip.Visible = true;
}
chartTip.SetTitle(e.HitTestResult.Series.Name.Trim());
chartTip.SetValLbl("Value: " + FormatNumber(dp.YValues[0]));
chartTip.SetSeries("Branch: " + dp.AxisLabel);
chartTip.SetSeriesColor(control.PaletteCustomColors[seriesI]);
chartTip.Location = new Point(control.Parent.Location.X + e.X + 10, control.Parent.Location.Y + e.Y + 10);
chartTip.BringToFront();
Debug.WriteLine($"Finished Moving Tooltip! Scroll Pos: {parent.VerticalScroll.Value}");
parent.VerticalScroll.Value = ScrollPosStart;
this.ActiveControl = null; This helped but did not fix the issue also added to the on_click for the charts (helped more cases)
}
else
{
chartTip.Visible = false;
}
}
Он делает разные вещи в зависимости от условий:
Когда меня прокручивают вверх (0), он делает следующее
Код: Выделить всё
Moving Tooltip! Scroll Pos: 0
Finished Moving Tooltip! Scroll Pos: 194
Moving Tooltip! Scroll Pos: 87
Любая информация /понимание того, что происходит, будет полезно.
Подробнее здесь: https://stackoverflow.com/questions/788 ... us-changes