using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Text; using System.Windows.Forms; using VEPROMS.CSLA.Library; namespace Volian.Controls.Library { //public delegate void vlnTreeViewEvent(object sender, vlnTreeEventArgs args); //public delegate bool vlnTreeViewBoolEvent(object sender, vlnTreeEventArgs args); //public delegate TreeNode vlnTreeViewTreeNodeEvent(object sender, vlnTreeEventArgs args); //public delegate void vlnTreeViewDDEvent(object sender, System.Windows.Forms.DragEventArgs args); public partial class vlnTreeView3 : TreeView { private static readonly log4net.ILog _MyLog = log4net.LogManager.GetLogger(System.Reflection.MethodBase.GetCurrentMethod().DeclaringType); #region Events public event vlnTreeViewEvent NodeSelectionChange; private void OnNodeSelectionChange(object sender, vlnTreeEventArgs args) { if (NodeSelectionChange != null) NodeSelectionChange(sender, args); } #endregion #region Business Methods #endregion #region Constructors public vlnTreeView3() { InitializeComponent(); base.AfterSelect += new TreeViewEventHandler(tv_AfterSelect); } private void tv_AfterSelect(object sender, TreeViewEventArgs e) { OnNodeSelectionChange(sender, new vlnTreeEventArgs(e.Node)); } #endregion private static TreeNode GetTreeNodeFromData(IDataObject datobj) { foreach (string s in datobj.GetFormats()) { try { return (TreeNode)datobj.GetData(s); } catch (Exception ex) { if (_MyLog.IsErrorEnabled) _MyLog.Error("GetTreeNodeFromData", ex); } } return null; } private TreeNode Clone(TreeNode tn) { TreeNode tmp = (TreeNode)tn.Clone(); ExpandMatch(tmp, tn); return tmp; } private void ExpandMatch(TreeNode tn1, TreeNode tn2) { if (tn2.IsExpanded) tn1.Expand(); foreach (TreeNode tc in tn2.Nodes) ExpandMatch(tn1.Nodes[tc.Index], tc); } private bool IsChild(TreeNode parent, TreeNode child) { if (parent.Equals(child)) return true;// Check against self foreach (TreeNode tc in parent.Nodes) if (IsChild(tc, child)) return true;//Check all children return false;// Must not be a child at this level } } }