как сделать так, чтобы линии курсора следовали за мышью на графиках с помощью C # - PullRequest
5 голосов
/ 09 декабря 2011

enter image description here

На рисунке ниже показана диаграмма в моем проекте.Как вы можете видеть, есть две пунктирные линии пересечения.Меня просят заставить его следовать за мышью, но теперь, только если я нажимаю на график, он перемещается.Я пытался использовать CursorPositionChanging, но это не сработало.CursorEventHandler также не отображается в приведенной ниже команде:

 this.chart1.CursorPositionChanging += new System.Windows.Forms.DataVisualization.Charting.Chart.CursorEventHandler(this.chart1_CursorPositionChanging);

нужно ли для этого добавить дополнительную библиотеку?Итак, у меня сейчас две проблемы: 1. Сделайте так, чтобы линии следовали за мышью 2. Отсутствует CursorEventHandler

, проект является приложением формы окна с C #

Ответы [ 3 ]

5 голосов
/ 14 мая 2013
private void chData_MouseMove(object sender, MouseEventArgs e)
{
    Point mousePoint = new Point(e.X, e.Y);

    Chart.ChartAreas[0].CursorX.SetCursorPixelPosition(mousePoint, true);
    Chart.ChartAreas[0].CursorY.SetCursorPixelPosition(mousePoint, true);

    // ...
}
5 голосов
/ 09 декабря 2011

Диаграмма поддерживает событие MouseMove, которое вызывается при каждом перемещении мыши внутри диаграммы. MouseEventArgs содержит положение мыши, поэтому вы можете перемещать пунктирные линии на основе этих данных каждый раз, когда происходит событие.

0 голосов
/ 19 декабря 2018

Более обобщенная форма для синхронизации всех областей без дополнительной логики выглядит следующим образом:

var mousePoint = new Point(e.X, e.Y);
var chart = (Chart)sender;
//foreach child
foreach (var ca in chart.ChartAreas)
{
    ca.CursorX.SetCursorPixelPosition(mousePoint, true);
    ca.CursorY.SetCursorPixelPosition(mousePoint, true);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...