@AAGR
Занимаюсь программированиям

Как сделать так чтоби отображались узли treeview?

Кароче, суть такова, есть TreeView в нем много каталоги.. есть кнопка добавить основной узел, и дочерний. Когда добавляю новые узлы, на TreeView все отображается как надо. Также есть кнопка для того чтобы добавить предмет какой-то в базу даних. Когда на нее нажимаєш, отображается, ввести название, описание... и в самом конце есть ComboBox при нажатии на которого, выскакиваю все каталоги из TreeView. Проблема в том, что если я в самой VisualStudio добавлю узлы в том ComboBox будет все отображаются, но когда добавлю узлы при помощи кнопки, они не отображаются. И если например половину добавить в студии, половину при помощи кнопок, то будут отображаться только те которие добавил в студии.

Код для кнопки добавить узел:
private void button1_Click(object sender, EventArgs e)  // Основная форма
        {
            NewTreeViewNode newForm = new NewTreeViewNode();
            newForm.ShowDialog();

            string name = newForm.textBox1.Text.ToString();
            if(name != "") treeView1.Nodes.Add(newForm.textBox1.Text.ToString());
        }

        private void button1_Click(object sender, EventArgs e) // Форма для ввода имени узла
        {
            if (textBox1.Text == "") MessageBox.Show("Введите текс", "Ошибка", MessageBoxButtons.OK ,MessageBoxIcon.Error);
            else
            {
                flag = true;
                this.Close();
            }
        }


Код для отображения в ComboBox:
void Combo()
        {
            Form1 f = new Form1();

            List<TreeNode> nameNode = GetAllNodes(f.treeView1.Nodes);

            foreach (var item in nameNode)
            {
                string text = item.ToString();
                comboBox2.Items.Add(text.Substring(10).ToString());
            }
        }
        static List<TreeNode> GetAllNodes(TreeNodeCollection nodes)
        {
            List<TreeNode> list = new List<TreeNode>();
            foreach (TreeNode node in nodes)
            {
                list.Add(node);
                GetNodes(node.Nodes, list);
            }
            return list;
        }
        static void GetNodes(TreeNodeCollection nodes, List<TreeNode> list)
        {
            if (nodes == null)
                return;
            foreach (TreeNode node in nodes)
            {
                list.Add(node);
                GetNodes(node.Nodes, list);
            }
        }


Надеюсь на помощь. Спасибо.
  • Вопрос задан
  • 77 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы