Как добавить элемент contextmenuStrip в динамически создаваемые древовидные представления? - PullRequest
0 голосов
/ 09 января 2020

Здесь я создаю несколько древовидных представлений и добавляю, что задает c древовидное представление на панель потока, теперь я добавляю sh, я добавляю элемент контекстной меню, чтобы пользователь мог редактировать узел, добавлять узел или удалять узел. Как мне этого добиться?

 private void button1_Click(object sender, EventArgs e)
    {
        for (int i = 0; i < ThreatEvaluationInstances.Count; i++)
        {

            TreeView tv = new TreeView();
            tv.Name = "tv" + i;
            tv.Location = new Point(8, i * 100);
            tv.Size = new Size(841, 125);
            TreeNode root = new TreeNode(ThreatEvaluationInstances.ElementAt(i).Threat1 + 
                " (" + ThreatEvaluationInstances.ElementAt(i).AttackPotential1 + ") ");

            tv.Nodes.Add(root);
            tv.ContextMenuStrip = AttackTreesMenuStrip;
            flowLayoutPanel1.Controls.Add(tv);

        }
        //populateTreeview();
    }

Ниже код не работает

private void AttackTreesMenuStrip_ItemClicked(object sender, ToolStripItemClickedEventArgs e)
    {
        try
        {
            TreeView tv = AttackTreesMenuStrip.SourceControl as TreeView;

            switch (e.ClickedItem.Text)
            {
                case "Edit":
                    tv.SelectedNode.BeginEdit();
                    break;
                case "Add Sub Threat":
                    TreeNode childNode = new TreeNode("Add threat here..");
                    tv.SelectedNode.Nodes.Add(childNode);
                    break;
                case "Remove Threat":
                    if (MessageBox.Show("Are you sure you want to Delete this threat", "Delete Threat", MessageBoxButtons.YesNo) == DialogResult.Yes)
                        tv.SelectedNode.Remove();
                    break;
            }
        }
        catch (Exception a)
        {
            a.ToString();
        }
    }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...