我想设置TreeView为只读,就是只能通过代码绑定节点的Check。
所以我注册了BeforeCheck事件,在事件里面设e.Cancel=true可现在问题是,当我双击TreeView中节点的CheckBox,CheckBox也会被勾上!
也没有走BeforeCheck事件!
且我查了被双击的节点的Checked属性为false。请问高手这是为什么??
怎么才能控制不被勾上????

解决方案 »

  1.   

    我用VS2005和2010验证过了,没问题啊。
    当我双击TreeView中节点的CheckBox,CheckBox不会被勾上!不知道你的问题是怎样造成。不过可以试一下下面的方法,看能不能解决。在TreeView控件中实现MouseDown事件。
    private void treeView1_MouseDown(object sender, MouseEventArgs e) {
                if (e.Clicks > 1) {
                    TreeNode node = treeView1.GetNodeAt(e.X, e.Y);                if (null != node) {
                        node.Checked = false;//取消选中
                    }
                }
            }