上一篇介绍了TreeListNode节点的三种状态。下面将介绍TreeList的几种比较常用,重要的事件和TreeList的命中测试特性。
1.TreeList.NodeCellStyle事件
Node的显示(包括窗口的切换导致Node的显示)和状态的改变都会触发该事件。该事件主要用来改变Node的显示样式。
private void treeList1_NodeCellStyle(object sender, DevExpress.XtraTreeList.GetCustomNodeCellStyleEventArgs e)
{
if (e.Node.CheckState == CheckState.Unchecked)
{
e.Appearance.Font = new Font(DevExpress.Utils.AppearanceObject.DefaultFont, FontStyle.Strikeout);
e.Appearance.ForeColor = Color.Gray;
}
}
上面的代码是实现的效果是 : CheckState为Unchecked的节点的字带有中划线且背景灰色。
2.TreeList.DoubleClick事件
双击Node时触发,但要注意的是要在TreeList.OptionsBehavior.Editable = false的情况下,双击Node才能触发该事件。
private void treeList1_DoubleClick(object sender, EventArgs e)
{
TreeListNode clickedNode = this.treeList1.FocusedNode;
string disPlayText = clickedNode.GetDisplayText("test");
MessageBox.Show("You clicked " + disPlayText);
}
3.TreeList的命中测试特性
private void treeList1_MouseMove(object sender, MouseEventArgs e)
{
Point point = treeList1.PointToClient(Cursor.Position);
TreeListHitInfo hitInfo = treeList1.CalcHitInfo(point);
switch (hitInfo.HitInfoType)
{
case HitInfoType.Cell:
this.Cursor = Cursors.Hand;
break;
case HitInfoType.NodeCheckBox:
this.Cursor = Cursors.PanEast;
break;
default :
this.Cursor = Cursors.Default;
break;
}
}