Получить начальное и конечное значение по оси X при выборе интервала с помощью мыши на графике - PullRequest
0 голосов
/ 03 июня 2019

CursorX SelectionStart и SelectionEnd возвращают NaN при выборе интервала на графике.Я хотел бы знать, как я могу получить значения из выбора области диаграммы с помощью мыши, в C # WinForms.

Я уже могу выбрать интервал, но я не могу принять начальное и конечное значение.Возможно, мне не хватает реализации какого-либо события мыши, но я сам пока не смог найти решение.

chartArea.CursorX.IsUserSelectionEnabled = true;
chartArea.CursorX.IsUserEnabled = true;
var cx = chartArea.CursorX;
double x1 = cx.SelectionStart;
double x2 = cx.SelectionEnd;

1 Ответ

1 голос
/ 03 июня 2019

Вы должны подписаться на событие Chart.SelectionRangeChanged и обработать его примерно так:

private void chart_SelectionRangeChanged(object sender, CursorEventArgs e)
{
    if (!double.IsNaN(e.NewSelectionStart) && !double.IsNaN(e.NewSelectionEnd))
    {
        double x1 = e.NewSelectionStart;
        double x2 = e.NewSelectionEnd;

        // Do something with x1 and x2. 
        // Note that x1 > x2 if the user selected from right to left.

Обычно вы подписываетесь на это событие через редактор форм, но если по какой-то причине вы не можете сделать эточто тогда будет подписан следующий код (при условии, что _chart является вашим объектом диаграммы):

_chart.SelectionRangeChanged += chart_SelectionRangeChanged;

Сделайте это в конструкторе формы после вызова InitializeComponent().

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...