DevExpress TreeList树组件自定义TreeListNode的Tooltip的方法(自动消息提示)
DevExpress TreeList树组件自定义TreeListNode的Tooltip的方法(自动消息提示)
本文实例展示了DevExpress实现自定义TreeListNode的Tooltip的方法。
TreeListNode的Tooltip效果:


解决方案:
1.设置treeList的ToolTipController属性,绑定toolTipController1。
2.实现toolTipController1的GetActiveObjectInfo事件。
toolTipController1 控件属性设置:

C# Code:
public static class TreeListExtension
{
/// </summary>
/// <param name="tree">TreeList</param>
/// <param name="e">ToolTipControllerGetActiveObjectInfoEventArgs</param>
/// <param name="builderNodeTooltipHandler">委托</param>
public static void CustomNodeTooltip(this TreeList tree, ToolTipControllerGetActiveObjectInfoEventArgs e, Func<TreeListNode, string> builderNodeTooltipHandler)
{
if (e.SelectedControl is DevExpress.XtraTreeList.TreeList)
{
TreeListHitInfo _hit = tree.CalcHitInfo(e.ControlMousePosition);
if (_hit.HitInfoType == HitInfoType.Cell)
{
TreeListViewInfo _viewInfo = tree.ViewInfo;
RowInfo _rowInfo = _viewInfo.GetRowInfoByPoint(e.ControlMousePosition);
CellInfo _cellInfo = _rowInfo.Cells[_hit.Column.VisibleIndex] as CellInfo;
EditHitInfo _editHitInfo = _cellInfo.EditorViewInfo.CalcHitInfo(e.ControlMousePosition);
if (_editHitInfo.HitTest == EditHitTest.MaskBox)
{
string _toolTip = builderNodeTooltipHandler(_hit.Node);
if (!string.IsNullOrEmpty(_toolTip))
e.Info = new ToolTipControlInfo(_cellInfo, _toolTip);
}
}
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
public static class TreeListExtension
{
/// </summary>
/// <param name="tree">TreeList</param>
/// <param name="e">ToolTipControllerGetActiveObjectInfoEventArgs</param>
/// <param name="builderNodeTooltipHandler">委托</param>
public static void CustomNodeTooltip(this TreeList tree, ToolTipControllerGetActiveObjectInfoEventArgs e, Func<TreeListNode, string> builderNodeTooltipHandler)
{
if (e.SelectedControl is DevExpress.XtraTreeList.TreeList)
{
TreeListHitInfo _hit = tree.CalcHitInfo(e.ControlMousePosition);
if (_hit.HitInfoType == HitInfoType.Cell)
{
TreeListViewInfo _viewInfo = tree.ViewInfo;
RowInfo _rowInfo = _viewInfo.GetRowInfoByPoint(e.ControlMousePosition);
CellInfo _cellInfo = _rowInfo.Cells[_hit.Column.VisibleIndex] as CellInfo;
EditHitInfo _editHitInfo = _cellInfo.EditorViewInfo.CalcHitInfo(e.ControlMousePosition);
if (_editHitInfo.HitTest == EditHitTest.MaskBox)
{
string _toolTip = builderNodeTooltipHandler(_hit.Node);
if (!string.IsNullOrEmpty(_toolTip))
e.Info = new ToolTipControlInfo(_cellInfo, _toolTip);
}
}
}
}
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
toolTipController1_GetActiveObjectInfo事件:
C# Code:
private void toolTipController1_GetActiveObjectInfo(object sender, ToolTipControllerGetActiveObjectInfoEventArgs e)
{
tlGroup4User.CustomNodeTooltip(e, node =>
{
toolTipController1.ImageIndex = node.ImageIndex;
NodeModel m = node.Tag as NodeModel;
if (m.Type.ToUpper() == "GROUP")
{
return $"部门编号:{m.DataID}\r\n部门名称:{m.Text}";
}
else
{
return $"员工编号:{m.DataID}\r\n员工姓名:{m.Text}";
}
});
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761
private void toolTipController1_GetActiveObjectInfo(object sender, ToolTipControllerGetActiveObjectInfoEventArgs e)
{
tlGroup4User.CustomNodeTooltip(e, node =>
{
toolTipController1.ImageIndex = node.ImageIndex;
NodeModel m = node.Tag as NodeModel;
if (m.Type.ToUpper() == "GROUP")
{
return $"部门编号:{m.DataID}\r\n部门名称:{m.Text}";
}
else
{
return $"员工编号:{m.DataID}\r\n员工姓名:{m.Text}";
}
});
}
//来源:C/S框架网 | www.csframework.com | QQ:23404761

参考文档:
TreeListNode.HasAsParent详解
DevExpress TreeList 自动加载数据源并显示漂亮图标
创建TreeList及打开TreeListNode.Tag属性对应的窗体
C# DevExpress TreeListLookUpEdit 绑定数据源下拉窗体
[原创]递归读取DataTable加载TreeList控件
使用递归获取TreeList中所有勾选的结点
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
PictureTip 类 | 图标显示 ToolTipController 超级提示|C/S开发框架
C#绑定图片的超提示功能ToolTipController
Winform软件开发框架使用DevExpress组件有那些优势?|软件平台
企业级数据权限框架 - 集团组织架构数据权限开发框架(C/S+Winform+DevExpress)
DevTreeListView.SetImageIndex 设置TreeList显示的图标
DevStyle.SetTreeListSelectStyle 设置TreeList组件只读状态(用于选择)
C/S结构快速开发框架使用的DevExpress常用组件
推荐C# Winform+DevExpress皮肤框架|C/S框架网
C# GridView 资料行数据检查使用的方法(ValidateRow与InvalidRowException)
TreeListNode.HasAsParent详解
DevExpress TreeList 自动加载数据源并显示漂亮图标
创建TreeList及打开TreeListNode.Tag属性对应的窗体
C# DevExpress TreeListLookUpEdit 绑定数据源下拉窗体
[原创]递归读取DataTable加载TreeList控件
使用递归获取TreeList中所有勾选的结点
C/S结构快速开发框架使用的DevExpress常用组件|C/S开发框架
PictureTip 类 | 图标显示 ToolTipController 超级提示|C/S开发框架
C#绑定图片的超提示功能ToolTipController
Winform软件开发框架使用DevExpress组件有那些优势?|软件平台
企业级数据权限框架 - 集团组织架构数据权限开发框架(C/S+Winform+DevExpress)
DevTreeListView.SetImageIndex 设置TreeList显示的图标
DevStyle.SetTreeListSelectStyle 设置TreeList组件只读状态(用于选择)
C/S结构快速开发框架使用的DevExpress常用组件
推荐C# Winform+DevExpress皮肤框架|C/S框架网
C# GridView 资料行数据检查使用的方法(ValidateRow与InvalidRowException)
其它资料:
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
什么是C/S结构? | C/S框架核心组成部分 | C/S框架-WebService部署图 | C/S框架-权限管理 | C/S结构系统框架 - 5.1旗舰版介绍 | C/S结构系统框架 - 功能介绍 | C/S结构系统框架 - 产品列表 | C/S结构系统框架 - 应用展示(图) | 三层体系架构详解 | C/S架构轻量级快速开发框架 | C/S框架网客户案例 | WebApi快速开发框架 | C/S框架代码生成器 | 用户授权注册软件系统 | 版本自动升级软件 | 数据库底层应用框架 | CSFramework.CMS内容管理系统 |
在线客服
