DEV的TreeList添加ToolTip信息


文章转载自:DevExpress控件中文网 [http://www.devexpresscn.com/]

您可以使用ToolTipController控件,然后通过ToolTipController.GetActiveObjectInfo事件来设置ToolTip

关键代码:

private void toolTipController1_GetActiveObjectInfo(object sender, DevExpress.Utils.ToolTipControllerGetActiveObjectInfoEventArgs e)

     {

         if (e.SelectedControl is DevExpress.XtraTreeList.TreeList)

         {

                TreeList tree = (TreeList)e.SelectedControl;

                TreeListHitInfo hit = tree.CalcHitInfo(e.ControlMousePosition);

                if (hit.HitInfoType == HitInfoType.Cell)

                {

                    object cellInfo = new TreeListCellToolTipInfo(hit.Node, hit.Column, null);

                    string toolTip = string.Format("{0} (Column: {1}, Node ID: {2})", hit.Node[hit.Column],

                    hit.Column.VisibleIndex, hit.Node.Id);

                    e.Info = new DevExpress.Utils.ToolTipControlInfo(cellInfo, toolTip);

                }

          }

}

本人树形列表只有一列值,树形数据为一级区域,二级子区域,三级设备,而提示信息只要三级设备提示连接状态

使用TreeList的节点的Tag值作为提示信息值,只在TreeList绑定值事件中添加三级设备的节点的tag值,并修改事件中部分代码

 if (hit.HitInfoType == HitInfoType.Cell)
{
       if (hit.Node.Tag == null) return;
       object cellInfo = new TreeListCellToolTipInfo(hit.Node, hit.Column, null);
       string toolTip = string.Format("{0}", hit.Node.Tag.ToString());
        e.Info = new DevExpress.Utils.ToolTipControlInfo(cellInfo, toolTip);
}

 即可以使一二级节点不显示ToolTip,三级节点显示ToolTip