双击TreeNode复选框上的行为

时间:2011-03-16 07:53:15

标签: c# treeview checkbox double-click treenode

我的TreeView填充了TreeNodes,其中包含图标和复选框。

我一直试图禁用其中一些人在BerforeCheck方法中丢弃该事件的检查/取消检查功能。这很好用,直到我双击复选框:复选框的图像与其真实状态相反(如果状态为Checked=false则显示复选标记)。我试图修复在NodeDoubleClickBeforeClick方法中手动更改StateImageIndex但没有成功。

更糟糕的是:我在StateImageList中添加了第三个图像(是的,我希望复选框也是三态)但我还没有使用它(它从未在我的代码中设置),并且经过一番双击后,第三个图像被设置为框的当前状态(此时我无法确定明确的行为)。

我怎样才能最好让它按预期工作,最坏的情况是禁用双击复选框? 感谢。

PS:问题有already been asked,但没有答案......

1 个答案:

答案 0 :(得分:5)

试试这个.. :)为我工作

public class NewTreeView : TreeView
    {
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x203)
                m.Result = IntPtr.Zero;
            else
                base.WndProc(ref m);
        }
    }