DevExpress实现自定义TreeListNode的Tooltip的方法

 更新时间:2014年08月06日 17:41:39   投稿:shichen2014  
这篇文章主要介绍了DevExpress实现自定义TreeListNode的Tooltip的方法,需要的朋友可以参考下

本文实例展示了DevExpress实现自定义TreeListNode的Tooltip的方法,具体方法如下所示:

主要功能代码如下:

/// <summary>
/// 为节点提供Tooltip
/// 说明:
/// 1.设置tree.ToolTipController属性
/// 2.ToolTipController的GetActiveObjectInfo事件中使用
/// 3.举例
/// tlLHData.CustomNodeTooltip(e, node =>
///{
///  string _cabId = node.GetKeyID();
///  CCabInfo _cabinfo = LHDBHelper.GetCabInfo(_cabId);
///  if (_cabinfo != null)
///  {
///    return string.Format("核对时间:{0}\r\n在线情况:{1}\r\n最后一次活跃时间:{2}\r\n",
///               _cabinfo.ChkDataTime,
///               _cabinfo.CtuOnlineStatus == 1 ? "在线" : "未上线",
///               _cabinfo.LastAliveTime);
///  }
///  return string.Empty;
///});
/// </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)
  {
 TreeList _tree = (TreeList)e.SelectedControl;
 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#调用jar包的方法步骤(非常详细)

    c#调用jar包的方法步骤(非常详细)

    这篇文章主要给大家介绍了关于c#调用jar包的方法步骤,文中通过图文介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2021-01-01
  • C#实现类型的比较示例详解

    C#实现类型的比较示例详解

    这篇文章主要给大家介绍了关于C#实现类型的比较的相关资料,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-04-04
  • C# 延迟Task.Delay()和Thread.Sleep()的具体使用

    C# 延迟Task.Delay()和Thread.Sleep()的具体使用

    Thread.Sleep()是同步延迟,Task.Delay()是异步延迟,本文主要介绍了C# 延迟Task.Delay()和Thread.Sleep()的具体使用,文中通过示例代码介绍的非常详细,需要的朋友们下面随着小编来一起学习学习吧
    2024-01-01
  • C#中Json的简单处理方法

    C#中Json的简单处理方法

    这篇文章主要介绍了C#中Json的简单处理方法的相关资料,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2016-09-09
  • C#编程实现取整和取余的方法

    C#编程实现取整和取余的方法

    这篇文章主要介绍了C#编程实现取整和取余的方法,结合实例形式分析了C#中Math.Celling与Math.Floor函数的相关使用技巧,具有一定参考借鉴价值,需要的朋友可以参考下
    2015-11-11
  • C#在MEF框架中手动导入依赖模块

    C#在MEF框架中手动导入依赖模块

    这篇文章介绍了C#在MEF框架中手动导入依赖模块的方法,文中通过示例代码介绍的非常详细。对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-06-06
  • Visual C#类的定义及实现方法实例解析

    Visual C#类的定义及实现方法实例解析

    这篇文章主要介绍了Visual C#类的定义及实现方法实例解析,对于新手来说有不错的借鉴学习价值,需要的朋友可以参考下
    2014-07-07
  • c# Winform自定义控件-仪表盘功能

    c# Winform自定义控件-仪表盘功能

    这篇文章主要介绍了c#Winform自定义控件-仪表盘功能,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-09-09
  • c# 如何用lock解决缓存击穿

    c# 如何用lock解决缓存击穿

    这篇文章主要介绍了c# 如何用lock解决缓存击穿,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2021-02-02
  • C# 对Outlook2010进行二次开发的图文教程

    C# 对Outlook2010进行二次开发的图文教程

    下面小编就为大家分享一篇C# 对Outlook2010进行二次开发的图文教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2017-12-12

最新评论