⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 dbtreeviewctrl.cs

📁 图书系统!管理图书的
💻 CS
📖 第 1 页 / 共 2 页
字号:
				currentListIndex += 1;
			}
		}
		#endregion

		#region Groups

		public void RemoveGroup(Group group)
		{
			if ( treeGroups.Contains (group) )
			{
				treeGroups.Remove(group);
				if ( this.AutoBuildTree )
					BuildTree();
			}
		}

		public void RemoveGroup (string groupName)
		{
			foreach (Group group in this.treeGroups)
			{
				if ( group.Name == groupName )
				{
					RemoveGroup (group);
					return;
				}
			}
		}
    
		public void RemoveAllGroups ()
		{
			this.treeGroups.Clear();
			if ( this.AutoBuildTree )
				this.BuildTree();
		}

		public void AddGroup(Group group)
		{
			try
			{
				treeGroups.Add(group);
				if ( this.AutoBuildTree )
					this.BuildTree();
			}
			catch (NotSupportedException e)
			{
				MessageBox.Show (e.Message);
			}
			catch (System.Exception e)
			{
				throw e;
			}
		}

		public void AddGroup(String name, String groupBy, String displayMember,
			String valueMember, int imageIndex, int selectedImageIndex)
		{
			Group myNewGroup = new Group (name, groupBy, displayMember, valueMember, 
				imageIndex, selectedImageIndex);
			this.AddGroup (myNewGroup);
		}
    
		public Group[] GetGroups()
		{
			return ( (Group[]) treeGroups.ToArray (Type.GetType("Group")));
		}
    
		#endregion

		public void SetLeafData(String name, String displayMember, String valueMember, 
			int imageIndex, int selectedImageIndex)
		{
			this.Tag = name;
			this.DisplayMember = displayMember;
			this.ValueMember = valueMember;
			this.ImageIndex = imageIndex;
			this.SelectedImageIndex = selectedImageIndex;
		}

		public bool IsLeafNode (TreeNode node)
		{
			return (node.Nodes.Count == 0);
		}

		#region Keeping Everything In Sync

		public TreeNode FindNodeByValue (object value)
		{
			return FindNodeByValue (value, this.Nodes);
		}

		public TreeNode FindNodeByValue (object Value, TreeNodeCollection nodesToSearch)
		{
			int i = 0;
			TreeNode currNode;
			dbTreeNode leafNode;

			while ( i < nodesToSearch.Count )
			{
				currNode = nodesToSearch[i];
				i ++;
				if ( currNode.LastNode == null )
				{
					leafNode = (dbTreeNode) currNode;
					if ( leafNode.Value.ToString() == Value.ToString() )
						return currNode;
				}
				else
				{
					currNode = FindNodeByValue (Value, currNode.Nodes);
					if ( currNode != null )
						return currNode;
				}
			}

			return null;
		}
			
		private TreeNode FindNodeByPosition (int posIndex)
		{
			return FindNodeByPosition (posIndex, this.Nodes);
		}

		private TreeNode FindNodeByPosition (int posIndex, TreeNodeCollection nodesToSearch)
		{
			int i=0;
			TreeNode currNode;
			dbTreeNode leafNode;

			while ( i < nodesToSearch.Count )
			{
				currNode = nodesToSearch [i];
				i++;
				if ( currNode.Nodes.Count == 0 )
				{
					leafNode = (dbTreeNode)currNode;
					if ( leafNode.Position == posIndex )
					{
						return currNode;
					}
					else
					{
						currNode = FindNodeByPosition (posIndex, currNode.Nodes);
						if ( currNode != null )
							return currNode;
					}
				}
			}
			return null;
		}
		
		protected override void OnAfterSelect(TreeViewEventArgs e)
		{
			dbTreeNode leafNode = (dbTreeNode) e.Node;

			if (leafNode != null)
			{
				if ( this.m_currencyManager.Position != leafNode.Position )
					this.m_currencyManager.Position = leafNode.Position;
			}
			// TODO:  Add MyTreeViewCtrl.OnAfterSelect implementation
			base.OnAfterSelect (e);
		}

		#endregion

	}

	public class Group
	{
		private String groupName;
		private String groupByMember;
		private String groupByDisplayMember;																   
		private String groupByValueMember;

		private int groupImageIndex;
		private int groupSelectedImageIndex;

		public Group (String name, String groupBy, String displayMember,
			String valueMember, int imageIndex, int selectedImageIndex)
		{
			this.ImageIndex = imageIndex;
			this.Name = name;
			this.GroupBy = groupBy;
			this.DisplayMember = displayMember;
			this.ValueMember = valueMember;
			this.SelectedImageIndex = selectedImageIndex;
		}

		public Group (String name, String groupBy, String displayMember,
			String valueMember, int imageIndex) :
			this (name, groupBy, displayMember, valueMember, imageIndex, imageIndex)
		{
		}
		
		public Group (String name, String groupBy) :
			this (name, groupBy, groupBy, groupBy, -1, -1)
		{
		}
		
		public int SelectedImageIndex
		{
			get
			{
				return groupSelectedImageIndex;
			}
			set
			{
				groupSelectedImageIndex = value;
			}		
		}
		public int ImageIndex
		{
			get
			{
				return groupImageIndex;
			}
			set
			{
				groupImageIndex = value;
			}
		}
			
		public String Name
		{
			get
			{
				return groupName;
			}
			set
			{
				groupName = value;
			}
		}

		public String GroupBy
		{
			get
			{
				return groupByMember;
			}
			set
			{
				groupByMember = value;
			}
		}

		public String DisplayMember
		{
			get
			{
				return groupByDisplayMember;
			}
			set
			{
				groupByDisplayMember = value;
			}
		}

		public String ValueMember
		{
			get
			{
				return groupByValueMember;
			}
			set
			{
				groupByValueMember = value;
			}
		}
	}

	public class dbTreeNode : TreeNode
	{
		private String m_groupName;
		private object m_value;
		private object m_item;
		private int m_position;

		public dbTreeNode ()
		{
		}

		public dbTreeNode (String groupName, String text, object item, object value, 
			int imageIndex, int selectedImgIndex, int position)
		{
			this.GroupName = groupName;
			this.Text = text;
			this.Item = item;
			this.Value = value;
			this.ImageIndex = imageIndex;
			this.SelectedImageIndex = selectedImgIndex;
			this.m_position = position;
		}

		public dbTreeNode (String groupName, String text, object item, object value, int position)
		{
			this.GroupName = groupName;
			this.Text = text;
			this.Item = item;
			this.Value = value;
			this.m_position = position;
		}

		public String GroupName
		{
			get
			{
				return m_groupName;
			}
			set
			{
				this.m_groupName = value;
			}
		}

		public object Item
		{
			get
			{
				return m_item;
			}
			set
			{
				m_item = value;
			}
		}

		public object Value
		{
			get
			{
				return m_value;
			}
			set
			{
				m_value = value;
			}
		}

		public int Position
		{
			get
			{
				return m_position;
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -