From fa853d3373f02825962f35fcac6ad36dde13bc4d Mon Sep 17 00:00:00 2001 From: dahall Date: Wed, 12 Feb 2020 20:06:52 -0700 Subject: [PATCH] Added GetItem and SetItem extension methods to TreeNode --- WIndows.Forms/Extensions/TreeViewExtension.cs | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/WIndows.Forms/Extensions/TreeViewExtension.cs b/WIndows.Forms/Extensions/TreeViewExtension.cs index b7df5bac..40111d5f 100644 --- a/WIndows.Forms/Extensions/TreeViewExtension.cs +++ b/WIndows.Forms/Extensions/TreeViewExtension.cs @@ -81,6 +81,28 @@ namespace Vanara.Extensions /// An of all instances in this . public static IEnumerable EnumerateAllNodes(this TreeView treeView) => AsEnumerable(treeView.Nodes, true); + /// Sets the values. + /// The instance for which to set details. + /// The instance. + public static bool SetItem(this TreeNode node, ref TVITEMEX tvItem) => SendMessage(node.TreeView.Handle, TreeViewMessage.TVM_SETITEM, default, ref tvItem).ToInt32() != 0; + + /// Gets the node values. + /// The instance for which to get details. + /// The mask of items to get. + /// The mask of states to get. + /// A structure with the information. + public static TVITEMEX GetItem(this TreeNode node, TreeViewItemMask mask = (TreeViewItemMask)0x13FF, TreeViewItemStates stateMask = (TreeViewItemStates)0xFFFF) + { + var tvItem = new TVITEMEX + { + hItem = node.Handle, + mask = mask.SetFlags(TreeViewItemMask.TVIF_HANDLE).SetFlags(TreeViewItemMask.TVIF_TEXT, false), + stateMask = stateMask + }; + SendMessage(node.TreeView.Handle, TreeViewMessage.TVM_GETITEM, default, ref tvItem); + return tvItem; + } + private static IconSize GetIconSizeFromSize(Size sz) { switch (sz.Height)