TreeView 双击不展开节点

来源:互联网 发布:json对象添加到数组中 编辑:程序博客网 时间:2024/04/30 05:17

Microsoft在TreeView控件中自作主张地做成双击节点时自动展开/折叠节点。然而如果用户自定义NodeMouseDoubleClick事件,同时又不希望改变结点的展开/折叠状态,就无法直接达到这一效果。这是个讨厌的问题,网上有些解决办法是这样,查看鼠标点击了几下,以这个来判断,如果 CLICK >1 则证明是双击,然后去做特定的操作,但这样有个问题,就是如果是在"+"上双击,结果也是去执行的特定的操作,而我们有可能是展开节点,但无法做到,办法是人想出来的,

大体思路跟网上差不多,只不过我们TreeView_MouseDown事件里多加了几行代码

如下

        private bool expandCollapse;        private void TmpltTreeView_MouseDown(object sender, MouseEventArgs e)        {            TreeViewHitTestInfo testInfo = this.HitTest(e.Location);            expandCollapse = e.Clicks > 1 && (testInfo.Location == TreeViewHitTestLocations.Label                || testInfo.Location == TreeViewHitTestLocations.Image);                     }

被节点困扰的朋友们,赶紧试试把!TreeViewHitTestInfo 里有你想要的东西!