我的TreeView
填充了TreeNodes
,其中包含图标和复选框。
我一直试图禁用其中一些人在BerforeCheck
方法中丢弃该事件的检查/取消检查功能。这很好用,直到我双击复选框:复选框的图像与其真实状态相反(如果状态为Checked=false
则显示复选标记)。我试图修复在NodeDoubleClick
和BeforeClick
方法中手动更改StateImageIndex但没有成功。
更糟糕的是:我在StateImageList
中添加了第三个图像(是的,我希望复选框也是三态)但我还没有使用它(它从未在我的代码中设置),并且经过一番双击后,第三个图像被设置为框的当前状态(此时我无法确定明确的行为)。
我怎样才能最好让它按预期工作,最坏的情况是禁用双击复选框? 感谢。
PS:问题有already been asked,但没有答案......
答案 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);
}
}