4

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

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

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

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

PS:这个问题已经问过了,但没有答案...

4

1 回答 1

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);
        }
    }
于 2011-04-11T13:34:10.570 回答