双击TreeNode复选框上的beavior

问题描述 投票:4回答:1

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

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

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

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

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

c# treeview checkbox double-click treenode
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);
        }
    }
© www.soinside.com 2019 - 2024. All rights reserved.