コード例 #1
0
ファイル: Graphs.cs プロジェクト: NastyaP1/GraphProgram
        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]);
                }
            }
        }