private void Graphs_MouseDown(object sender, MouseEventArgs e) //работа с узлами { if (AddANewNodeRBtn.Checked) //добавляет узлы { GiveNames fen = new GiveNames(); fen.Name = "No name"; Graphics gr = CreateGraphics(); //graph.AddNode(e.X, e.Y); int len = graph.nodes.Count; if (fen.ShowDialog() == DialogResult.OK) { graph.AddNode(e.X, e.Y); len = graph.nodes.Count; graph.nodes[graph.nodes.Count - 1].names = fen.Name; } da.DrawNode(gr, graph.nodes[len - 1]); gr.Dispose(); } else if (AddAnEdgeRBtn.Checked)//рисует ребра { int n = da.FindNode(e.X, e.Y); if (n != -1) { graph.DrawEdge = true; graph.nodeIn = n; } } else if (ChooseTwoNodesRBtn.Checked)//окрашивает два ущла начало и конец пути { int n = da.FindNode(e.X, e.Y); if (n != -1) { Graphics gr = CreateGraphics(); graph.ChooseTrue(n); da.DrawNode(gr, graph.nodes[n]); } } else if (ChooseFriendRBtn.Checked) { graph.ToggleRelation(e.X, e.Y); //int n = da.FindNode(e.X, e.Y); Graphics gr = CreateGraphics(); gr.Clear(DefaultBackColor); da.ShowGraph(gr, DefaultBackColor); } else if (ClearTwoNodesRBtn.Checked)//очищает узлы и возвращает прежний цвет { int n = da.FindNode(e.X, e.Y); if (n != -1) { Graphics gr = CreateGraphics(); graph.ChooseFalse(n); da.DrawNode(gr, graph.nodes[n]); } } }