Пример #1
0
 public void SetObject(string key, object obj)
 {
     if (string.IsNullOrWhiteSpace(key)) return;
     if (obj == null) return;
     string value = obj.GetType().FullName;
     string disply = string.Format("{0} : {1}", key.PadRight(key.Length + RightSpaceLength), value);
     NodeItem tag = new NodeItem(key, value, disply, obj, false, true);
     if (objectTreeView.Nodes.ContainsKey(key))//update
     {
         TreeNode node = objectTreeView.Nodes[key];
         node.Nodes.Clear();
         node.Text = disply;
         node.Tag = tag;
     }
     else//add
     {
         TreeNode node = new TreeNode(disply) { Name = key, Tag = tag };
         node.ContextMenu = GetTopNodeMenu(node);
         objectTreeView.Nodes.Add(node);
     }
 }
Пример #2
0
 private void AddChildsTo(TreeNode parent, NodeItem nodeItem, bool expand = true)
 {
     if (parent == null || nodeItem == null || nodeItem.IsFinal || nodeItem.Tag == null) return;
     int maxNameLenght;
     List<Member> list = GetObjectMember(nodeItem.Tag, out maxNameLenght);
     foreach (var item in list)
     {
         if (item.MType == MemberType.Final || item.MObject == null)
         {
             string value = GetDisplayValue(item.MObject);
             string display = string.Format("{0} : {1}", item.MName.PadRight(maxNameLenght), GetShortString(value, DefaultValueMaxLength));
             NodeItem tag = new NodeItem(item.MName, value, display, item.MObject, true);
             TreeNode tmpNode = new TreeNode(display);
             tmpNode.Tag = tag;
             tmpNode.ToolTipText = value;
             tmpNode.ContextMenu = GetNodeMenu(tmpNode);
             AddChildTo(parent, tmpNode);
         }
         else if (item.MType == MemberType.List)
         {
             string value = item.MObject is ICollection ? ((ICollection)item.MObject).Count.ToString() : "*";
             string display = string.Format("{0} : {1}", item.MName.PadRight(maxNameLenght), string.Format("[{0}]", value));
             NodeItem tag = new NodeItem(item.MName, value, display, item.MObject);
             TreeNode tmpNode = new TreeNode(display);
             tmpNode.Tag = tag;
             tmpNode.ContextMenu = GetNodeMenu(tmpNode);
             AddChildTo(parent, tmpNode);
         }
         else//object
         {
             string value = item.MObject.GetType().FullName;
             string display = string.Format("{0} : {1}", item.MName.PadRight(maxNameLenght), item.MObject.GetType().FullName);
             NodeItem tag = new NodeItem(item.MName, value, display, item.MObject);
             TreeNode tmpNode = new TreeNode(display);
             tmpNode.Tag = tag;
             tmpNode.ContextMenu = GetNodeMenu(tmpNode);
             AddChildTo(parent, tmpNode);
         }
     }
     ExpandOrNot(parent);
 }