/// <summary>
 /// Привести в соответствие с координатами мыши выделение рёбер графа.
 /// То, которое под мышью, будет выделенным, а то, с которого мышь ушла, станет обычным
 /// </summary>
 /// <param name="mousePoint">Координаты мыши</param>
 private void ChangeEdgesSelecting(PointF mousePoint)
 {
     // Если было выделенное ребро, проверяем, покинула ли мышь его. Если нет - конец. Если да - убираем подсветку
     if (SelectedEdge != null) {
         if (!EdgeDrawer.IsCoordinatesOnEdge(SelectedEdge, mousePoint)) {
             EdgeDrawer.DrawEdge(GetGraphics(), SelectedEdge);
             SelectedEdge = null;
             Invalidate();
         }
         else
             return;
     }
     // Если рёбра не интерактивны - выделения нет
     if (InteractiveMode != InteractiveMode.Interactive && InteractiveMode != InteractiveMode.OnlyEdges)
         return;
     // Смотрим, оказалась ли мышь над одним из рёбер
     foreach (var edge in Graph.Edges) {
         // Если да - выделяем и выходим (искать больше нечего)
         if (EdgeDrawer.IsCoordinatesOnEdge(edge, mousePoint)) {
             SelectedEdge = edge;
             EdgeDrawer.DrawSelectedEdge(GetGraphics(), edge);
             Invalidate();
             return;
         }
     }
 }
 /// <summary>
 /// Привести в соответствие с координатами мыши выделение рёбер графа.
 /// То, которое под мышью, будет выделенным, а то, с которого мышь ушла, станет обычным
 /// </summary>
 /// <param name="mousePoint">Координаты мыши</param>
 private void ChangeEdgesSelecting(PointF mousePoint)
 {
     // Если было выделенное ребро, проверяем, покинула ли мышь его. Если нет - конец. Если да - убираем подсветку
     if (SelectedEdge != null)
     {
         if (!EdgeDrawer.IsCoordinatesOnEdge(SelectedEdge, mousePoint))
         {
             // Для экономии перерисовываем не всё, а только это ребро
             EdgeDrawer.DrawEdge(GetGraphics(), SelectedEdge);
             SelectedEdge = null;
             Invalidate();
         }
         else
         {
             return;
         }
     }
     // Смотрим, оказалась ли мышь над одним из рёбер
     foreach (var edge in Graph.Edges)
     {
         // Если да - выделяем и выходим (искать больше нечего)
         if (EdgeDrawer.IsCoordinatesOnEdge(edge, mousePoint))
         {
             SelectedEdge = edge;
             EdgeDrawer.DrawSelectedEdge(GetGraphics(), edge);
             Invalidate();
             return;
         }
     }
 }