private void GetSubCategoriesButton_Click(object sender, EventArgs e) { //subcategories GuiToUtil(generic); Category parentCat = GetTreeViewSelectedNode() as Category; if (parentCat != null && (parentCat.HasSubCategories || parentCat is NextPageCategory)) { TreeNode selected = treeView1.SelectedNode; if (parentCat is NextPageCategory) { selected = selected.Parent; selected.Nodes.RemoveAt(selected.Nodes.Count - 1); } else { selected.Nodes.Clear(); } generic.DiscoverSubCategories(parentCat); foreach (Category cat in parentCat.SubCategories) { selected.Nodes.Add(cat.Name).Tag = cat; cat.HasSubCategories = false; } selected.Expand(); } else { MessageBox.Show("no valid category selected"); } }