zoukankan      html  css  js  c++  java
  • Winform中双击TreeView的CheckBox,级联节点变化不一致的问题

    这两天捣鼓Winform的TreeView时遇到一个很纠结的问题:
    我的TreeView是带有CheckBox的级联树,单击父节点的时候,子节点也会发生相应的变化
    遇到的问题是 当发生双击事件时,被点击的节点状态变化了两次,一切正常。
    但是其他节点却只变化了一次。 下断点仔细检查后发现,虽然是双击 但是AfterCheck事件却只触发一次。。
    后来上网查过之后得知这是Win7和Vista下的操作系统Bug,解决方法是写一个自定义的TreeView类,并覆盖一个方法

    using System;
    using System.Windows.Forms;
    
    public class MyTreeView : TreeView {
      protected override void WndProc(ref Message m) {
        // Suppress WM_LBUTTONDBLCLK
        if (m.Msg == 0x203) { m.Result = IntPtr.Zero; }
        else base.WndProc(ref m);
      }
    }

    不过这样有一个副作用,就是双击节点时,失去了[展开/折叠]的效果

    使用方法:重新编译后,就会在工具栏看到一个名为MyTreeView的自定义控件了,直接拖动即可。

  • 相关阅读:
    心血来潮学python
    lua中的table、stack和registery
    wrapper for lua
    FT232RL变砖之后
    12.04 redmine
    Webpack 概念
    如何学习 Webpack
    React基础篇
    Intellij实用技巧
    一行代码搞定图片缩放、旋转、加水印
  • 原文地址:https://www.cnblogs.com/TiestoRay/p/3012586.html
Copyright © 2011-2022 走看看