/// <summary> /// <para>Close the form and update the selected item ID</para> /// </summary> private void btnOk_Click(object sender, EventArgs e) { if (frmItemTreeTabControl.SelectedTab.Equals(frmItemTreeTabBrowse)) { if (treeItems.SelectedNode != null) { ItemNodeInfo itemNodeInfo = (ItemNodeInfo)treeItems.SelectedNode.Tag; if (itemNodeInfo.item.Length != 0) { m_selectedItemId = treeItems.SelectedNode.Name; this.Close(); } } } else { if (searchResultList.SelectedItems != null && searchResultList.SelectedItems.Count != 0) { ListViewItem listViewItem = searchResultList.SelectedItems[0]; m_selectedItemId = listViewItem.SubItems[0].Text; this.Close(); } } }
private void beforeNodeExpand(object sender, TreeViewCancelEventArgs e) { if (e.Node != null) { if (e.Node.Nodes.Count == 1 && e.Node.Nodes[0].Name.Equals("") && e.Node.Nodes[0].Text.Equals("") && e.Node.Nodes[0].Tag == null) { // This is a dummy node; the children of this node have not yet been queried Cursor = Cursors.WaitCursor; e.Node.Nodes.Remove(e.Node.Nodes[0]); // Remove the dummy node List <CodeValue> children; ItemNodeInfo itemNodeInfo = (ItemNodeInfo)e.Node.Tag; { // Obtain the items of the type children = Database.Database.getItems(itemNodeInfo.category, itemNodeInfo.subCategory); } String id; TreeNode node; String itemId = ""; TreeNode dummyNode = createDummyNode(); foreach (CodeValue child in children) { id = child.code.ToString(); node = new TreeNode(); node.Name = id; node.Text = child.value + " (" + id + ")"; itemId = id; node.Tag = new ItemNodeInfo(itemNodeInfo.category, itemNodeInfo.subCategory, itemId, true); e.Node.Nodes.Add(node); if (itemId.Length == 0) { // This is a type so add a dummy item node node.Nodes.Add((TreeNode)dummyNode.Clone()); } } Cursor = Cursors.Default; } } }