private void panel1_MouseClick(object sender, MouseEventArgs e) { Point clicked = new Point(e.X - _halfRadius, e.Y - _halfRadius); if (Control.ModifierKeys == Keys.Control)//if Ctrl is pressed { if (!_drawEdge) { _firstVertex = GetSelectedVertex(clicked); _drawEdge = true; } else { _secondVertex = GetSelectedVertex(clicked); _drawEdge = false; if (_firstVertex != null && _secondVertex != null && _firstVertex.Name != _secondVertex.Name) { frmCost formCost = new frmCost(); formCost.ShowDialog(); Point stringPoint = GetStringPoint(_firstVertex.Position, _secondVertex.Position); _graph.Add(new Edge(_firstVertex, _secondVertex, formCost._cost, stringPoint)); panel1.Invalidate(); } } } else { _vertices.Add(new Vertex(_vertices.Count, clicked)); panel1.Invalidate(); } }