TreeView树节点中CheckBox 前面的复选框如何隐藏

本文详细介绍了如何在TreeView组件中隐藏CheckBox前的复选框,通过提供实用的HideCheckBox方法和关键代码片段,帮助开发者解决实际项目中的需求,避免混淆和无效代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近因项目需求,想要实现如下一简单的功能:
TreeView树节点中CheckBox 前面的复选框如何隐藏

当时情况是这样的:
在这里插入图片描述
我想要实现成这样的:
在这里插入图片描述
在网上查找了很多,全是无用代码,譬如:
在这里插入图片描述
等等,全是一堆废话,简直是迷惑众生…


直接上代码:

1.直接创建我们的隐藏功能类


        private const int TVIF_STATE = 0x8;
        private const int TVIS_STATEIMAGEMASK = 0xF000;
        private const int TV_FIRST = 0x1100;
        private const int TVM_SETITEM = TV_FIRST + 63;
        private static void HideCheckBox(TreeView treeView, TreeNode node)
        {
            TVITEM tVITEM = new TVITEM();
            tVITEM.hItem = node.Handle;
            tVITEM.mask = TVIF_STATE;
            tVITEM.stateMask = TVIS_STATEIMAGEMASK;
            tVITEM.state = 0;
            SendMessage(treeView.Handle, TVM_SETITEM, IntPtr.Zero, ref tVITEM);
        }

        [StructLayout(LayoutKind.Sequential, Pack = 8, CharSet = CharSet.Auto)]
        private 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", CharSet = CharSet.Auto)]
        private static extern IntPtr SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, ref TVITEM lParam);


在这里插入图片描述
2.直接在我们需要处掉隐藏方法【HideCheckBox】即可
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

凌晓峰

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值