Кароче, суть такова, есть 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);
}
}
Надеюсь на помощь. Спасибо.