void treeView1_MouseDoubleClick(object sender, MouseEventArgs e) { TreeNode tn = treeView1.GetNodeAt(e.Location); if (tn == null || tn.Tag == null) { return; } enumCatalogItemType cType = GetCatalogItemType(tn.Tag as ICatalogItem); if (cType == _selectableType) { _selectedCatalogItem = tn.Tag as ICatalogItem; if (OnCatalogItemDoubleClicked != null) { OnCatalogItemDoubleClicked(this, tn.Tag as ICatalogItem); } } }
void treeView1_MouseDown(object sender, MouseEventArgs e) { _selectedCatalogItem = null; TreeNode tn = treeView1.GetNodeAt(e.Location); treeView1.SelectedNode = tn; if (tn != null && tn.Tag != null) { (tn.Tag as CatalogItem).LoadChildren(); if (_preNode == null || !_preNode.Equals(tn)) { enumCatalogItemType cType = GetCatalogItemType(tn.Tag as ICatalogItem); if (cType == _selectableType) { _selectedCatalogItem = (tn.Tag as ICatalogItem); if (OnSelectedCatalogItemChanged != null) { OnSelectedCatalogItemChanged(this, tn.Tag as ICatalogItem); } } } _preNode = tn; } }