Add this script to your common module
VB.NET
Imports System.Runtime.InteropServices
-
-
Public Const TVIF_STATE As Integer = &H8
-
Public Const TVIS_STATEIMAGEMASK As Integer = &HF000
-
Public Const TV_FIRST As Integer = &H1100
-
Public Const TVM_SETITEM As Integer = TV_FIRST + 63
-
-
Public Structure TVITEM
-
Public mask As Integer
-
Public hItem As IntPtr
-
Public state As Integer
-
Public stateMask As Integer
-
Public lpszText As String
-
Public cchTextMax As Integer
-
Public iImage As Integer
-
Public iSelectedImage As Integer
-
Public cChildren As Integer
-
Public lParam As IntPtr
-
End Structure
-
-
Public Sub RemoveCheckbox(ByVal nod As SiteTreeNode)
-
Dim tvi As TVITEM
-
tvi.hItem = nod.Handle
-
tvi.mask = TVIF_STATE
-
tvi.stateMask = TVIS_STATEIMAGEMASK
-
tvi.state = nod.Index << 12
-
SendMessage(nod.TreeView.Handle, TVM_SETITEM, IntPtr.Zero, tvi)
-
End Sub
Then call the subroutine
Public Sub TreeNode_SetStateImageIndex(ByVal node As TreeNode, ByVal index
As Integer)
RemoveCheckbox(node)
End Sub
C#
-
-
using System.Runtime.InteropServices;
-
-
namespace Treeview___CheckBoxes
-
{
-
public partial class Form1 : Form
-
{
-
public Form1()
-
{
-
InitializeComponent();
-
}
-
private void Form1_Load(object sender, EventArgs e)
-
{
-
// Iterate over the root nodes, removing their checkboxes
-
for (int n = 0; n<treeView1.Nodes.Count; n++)
-
{
-
TreeNode node = treeView1.Nodes[n];
-
TVITEM tvItem = new TVITEM();
-
tvItem.hItem = node.Handle;
-
tvItem.mask = TVIF_STATE;
-
tvItem.stateMask = TVIS_STATEIMAGEMASK;
-
tvItem.state = 0;
-
IntPtr lparam = Marshal.AllocHGlobal(Marshal.SizeOf(tvItem));
-
Marshal.StructureToPtr(tvItem, lparam, false);
-
SendMessage(this.treeView1.Handle, TVM_SETITEM, IntPtr.Zero, lparam);
-
}
-
}
-
public const int TVIF_STATE = 0×8;
-
public const int TVIS_STATEIMAGEMASK = 0xF000;
-
public const int TV_FIRST = 0×1100;
-
public const int TVM_SETITEM = TV_FIRST + 63;
-
public struct TVITEM
-
{
-
public int mask;
-
public IntPtr hItem;
-
public int state;
-
public int stateMask;
-
[MarshalAs(UnmanagedType.LPTStr)]
-
public String lpszText;
-
public int cchTextMax;
-
public int iImage;
-
public int iSelectedImage;
-
public int cChildren;
-
public IntPtr lParam;
-
}
-
[DllImport(“user32.dll”)] static extern IntPtr SendMessage(IntPtr hWnd, uint Msg, IntPtr wParam, IntPtr lParam);
-
-
}
-
}