private void FrmToolbox_Load(object sender, EventArgs e) { try { myToolbox.Categories.Clear(); XmlDocument objXmlDoc = DynamicCtrl.GetToolboxItemsConfigFile(); if (objXmlDoc == null) return; XmlNodeList categoryNodes = objXmlDoc.SelectNodes("ToolBox/Category"); for (int ix = 0; ix < categoryNodes.Count; ix++) { ToolboxCategory category = new ToolboxCategory(); category.Name = categoryNodes[ix].Attributes["Name"].Value; category.ImageIndex = DataConvert.GetInt32(categoryNodes[ix].Attributes["ImageIndex"].Value); category.IsOpen = true; myToolbox.Categories.Add(category); XmlNodeList toolitemNodes = categoryNodes[ix].SelectNodes("ToolItem"); for (int iy = 0; iy < toolitemNodes.Count; iy++) { ToolboxItem toolitem = new ToolboxItem(); toolitem.Name = toolitemNodes[iy].Attributes["Name"].Value; toolitem.ImageIndex = DataConvert.GetInt32(toolitemNodes[iy].Attributes["ImageIndex"].Value); toolitem.ClassName = toolitemNodes[iy].Attributes["ClassName"].Value; category.Items.Add(toolitem); } } } catch (Exception ex) { Program.ShowMessageBox("FrmToolbox", ex); } }
protected override void OnMouseDown(MouseEventArgs e) { try { base.OnMouseDown(e); ToolboxItem item = GetToolboxItemByPoint(e.Location); if (item != null) { if (item is ToolboxCategory) { ToolboxCategory tbc = item as ToolboxCategory; tbc.IsOpen = !tbc.IsOpen; RefreshScrollBar(); Invalidate(); } else { _selectedItem = item; Invalidate(); } } } catch (Exception ex) { MessageBox.Show(ex.Message, SYSTEMERROR, MessageBoxButtons.OK, MessageBoxIcon.Error); } }
private void OnCategoryCollectionChanged(Object sender, CollectionChangeEventArgs e) { ToolboxCategory tbc = e.Element as ToolboxCategory; if (e.Action == CollectionChangeAction.Add) { tbc.Items.ItemChanged += new CollectionChangeEventHandler(OnCategoryItemChanged); } else if (e.Action == CollectionChangeAction.Remove) { tbc.Items.ItemChanged -= new CollectionChangeEventHandler(OnCategoryItemChanged); } Invalidate(); }