c# – 双击TreeNode复选框上的beavior

我有一个TreeView填充TreeNodes有图标和复选框.

我一直在尝试禁用其中一些在BerforeCheck方法中丢弃事件的checkig / unchecking功能.这样工作正常,直到我双击复选框:复选框的图像与其实际状态相反(如果状态为Checked = false,则显示复选标记).我试图修复在NodeDoubleClick和BeforeClick方法中手动更改StateImageIndex但没有成功.

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

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

PS:问题有already been asked,但没有回答……

解决方法:

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

public class NewTreeView : TreeView
    {
        protected override void WndProc(ref Message m)
        {
            if (m.Msg == 0x203)
                m.Result = IntPtr.Zero;
            else
                base.WndProc(ref m);
        }
    }
上一篇:c# – 仅在儿童节点中的复选框?


下一篇:c# – WPF:MVVM中的TreeView