private void GetCategoriesButton_Click(object sender, EventArgs e) { var oldCursor = Cursor; try { Cursor = Cursors.WaitCursor; //get categories GuiToUtil(generic); TreeNode selected = treeView1.SelectedNode; if (selected != null && selected.Tag is NextPageCategory && selected.Parent.Parent == null) { generic.Settings.Categories.RemoveAt(generic.Settings.Categories.Count - 1); generic.DiscoverNextPageCategories((NextPageCategory)selected.Tag); } else { generic.Settings.Categories.Clear(); foreach (Category cat in staticList) { generic.Settings.Categories.Add(cat); } if (GetRegex(generic, "regEx_dynamicCategories") != null) { generic.DiscoverDynamicCategories(); } } treeView1.Nodes.Clear(); TreeNode root = treeView1.Nodes.Add("site"); foreach (Category cat in generic.Settings.Categories) { root.Nodes.Add(cat.Name).Tag = cat; cat.HasSubCategories = true; } root.Expand(); } catch (Exception ex) { MessageBox.Show(ex.Message, "Error getting Categories", MessageBoxButtons.OK, MessageBoxIcon.Error); } finally { Cursor = oldCursor; } }