Шпаргалка по ZedGraph. Как с помощью мышки выделять кривые

Компонент ZedGraph дает возможность пользователю с помощью мышки выбирать полностью кривую. Как это делается, показано в исходном коде ниже.

Все примеры объединены в одном solution для Visual Studio 2005 и написаны на языке C#, скачать их можно отсюда.

Проект в примере - Selection

public partial class Form1 : Form
{
    // Сохраним кривую для рисования
    CurveItem _myCurve;

    public Form1 ()
    {
        InitializeComponent ();

        // !!!
        // Разрешим выбор кривых
        zedGraph.IsEnableSelection = true;

        // Выбирать кривые будем с помощью левой кнопки мыши
        zedGraph.SelectButtons = MouseButtons.Left;

        // При этом клавиши нажимать никакие не надо
        zedGraph.SelectModifierKeys = Keys.None;

        // Отключим масштабирование, так как по умолчанию
        // оно тоже использует левую кнопку мыши без дополнительных клавиш
        zedGraph.IsEnableZoom = false;

        // Подпишемся на событие, которое происходит при выборе или отмене выбора кривых
        zedGraph.Selection.SelectionChangedEvent +=
            new EventHandler (Selection_SelectionChangedEvent);        

        DrawGraph ();
    }


    /// <summary>
    /// Обработчик события выбора/отмены выбора
    /// </summary>
    /// <param name="sender"></param>
    /// <param name="e"></param>
    void Selection_SelectionChangedEvent (object sender, EventArgs e)
    {
        // С помощью свойства класса CurveItem.IsSelected
        // можно определить, выбрана данная кривая или нет.
        // Также можно воспользоваться свойством zedGraph.Selection,
        // Которое хранит список выбранных в данный момент кривых           
        if (_myCurve.IsSelected)
        {
            Text = "Кривая выбрана";
        }
        else
        {
            Text = "Кривая не выбрана";
        }
    }


    private double f (double x)
    {
        if (x == 0)
        {
            return 1;
        }

        return Math.Sin (x) / x;
    }

    private void DrawGraph ()
    {
        // Получим панель для рисования
        GraphPane pane = zedGraph.GraphPane;

        // Очистим список кривых на тот случай, если до этого сигналы уже были нарисованы
        pane.CurveList.Clear ();

        // Создадим список точек
        PointPairList list = new PointPairList ();

        double xmin = -50;
        double xmax = 50;

        // Заполняем список точек
        for (double x = xmin; x <= xmax; x += 0.01)
        {
            // добавим в список точку
            list.Add (x, f (x));
        }

        // Создадим кривую
        _myCurve = pane.AddCurve ("", list, Color.Blue, SymbolType.None);

        // Вызываем метод AxisChange (), чтобы обновить данные об осях.
        zedGraph.AxisChange ();

        // Обновляем график
        zedGraph.Invalidate ();
    }
}

Вернуться к остальным примерам

Вы можете подписаться на новости сайта через RSS, Группу Вконтакте или Канал в Telegram.
4.5 stars

Рейтинг 4.5/5. Всего 4 голос(а, ов)



Norman 22.05.2019 - 12:36

Добавлять к выделению/ убирать кривые

Если кто-то это читает, подскажите, пожалуйста. В примере выше непонятно как действовать, если кривых не одна, а несколько. Например, мн нужно добавить к выбору еще несколько кривых или убрать, если я случайно выбрал лишнее. Есть методы AddToSelection RemoveFromSelection. Но я не нашел документации с описнием, как их правильно использовать.


Подписаться на комментарии
Автор:
Тема:
 Ваш комментарий
 
 
Введите код 697