首先赋给他一个ImageList,每个节点显示的时候都会调用相应的GetStateImage方法,在这里面设置e.NodeImageIndex选择相应的图片显示在节点里面。
就CheckBox+Text的节点而言,他就是显示一张CheckBox的图片。每次响应MouseDown事件,看看是不是点击CheckBox的图片,如果是就修改状态,然后调用TreeList.UpData事件,这会导致GetStateImage方法重新被调用,在这个里面查询状态,显示相应图片。
if(e.Button == MouseButtons.Left)
{
TreeListHitInfo hInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y));
if(hInfo.HitInfoType == HitInfoType.StateImage)
SetCheckedNode(hInfo.Node);
}
就CheckBox+Text的节点而言,他就是显示一张CheckBox的图片。每次响应MouseDown事件,看看是不是点击CheckBox的图片,如果是就修改状态,然后调用TreeList.UpData事件,这会导致GetStateImage方法重新被调用,在这个里面查询状态,显示相应图片。
if(e.Button == MouseButtons.Left)
{
TreeListHitInfo hInfo = treeList1.CalcHitInfo(new Point(e.X, e.Y));
if(hInfo.HitInfoType == HitInfoType.StateImage)
SetCheckedNode(hInfo.Node);
}