首页 > 编程语言 >AVEVA MARINE C# 鼠标悬停

AVEVA MARINE C# 鼠标悬停

时间:2023-12-24 19:11:39浏览次数:41  
标签:C# Win tt Infragistics ele 鼠标悬停 var sb MARINE

先看效果:

 

 

https://www.bilibili.com/video/BV1294y1w7Lm/?vd_source=0b221dbd75584a13ab6cd4551f3a0ec2

需要用到的dll

C:\AVEVA\Marine\OH12.1.SP4\ExplorerControl.dll

C:\AVEVA\Marine\OH12.1.SP4\Infragistics.Win.dll

C:\AVEVA\Marine\OH12.1.SP4\Infragistics.Win.UltraWinTree.dll

完整的代码

 

[MyAmFunctionAtt(nameof(测试功能), nameof(显示toolTip的内容))]
public static void 显示toolTip的内容(WindowManager wm)
{
    try
    {
        var de = wm.Windows.Cast<IWindow>().FirstOrDefault(c => c.Title == "Design Explorer") as DockedWindow;
        var ut = de.Control.Controls[0] as Infragistics.Win.UltraWinTree.UltraTree;
        //de.Tooltip = "";
        if (ut != null)
        {
            //UltraToolTipManager uttm = new UltraToolTipManager();
            var tt = new Infragistics.Win.ToolTip(ut)
            {
                AutoPopDelay = 8000,
                InitialDelay = 1000,
                BorderStyle = Infragistics.Win.ToolTipBorderStyle.Solid,
                DisplayStyle = Infragistics.Win.ToolTipDisplayStyle.BalloonTip,
                ForeColor = System.Drawing.Color.Blue,
                BackColor = System.Drawing.Color.LightYellow,
                //tt.DisplayStyleResolved = Infragistics.Win.ToolTipDisplayStyle.WindowsVista;
                CustomToolTipImage = Properties.Resources.logo,
                ToolTipTitle = "增强属性",
                //tt.ToolTipTextStyle = Infragistics.Win.ToolTipTextStyle.Formatted;
                TopMost = true,
            };
            ut.MouseEnterElement += (s, e) =>
            {
                try
                {
                    var pos = ut.PointToClient(System.Windows.Forms.Control.MousePosition);
                    var anode = ut.GetNodeFromPoint(pos);
                    if (anode == null) return;
                    var etd = anode as ExplorerTreeNode;
                    if (etd == null) return;
                    //tt.UseAppStyling = true;
                    var ele = etd?.Element;
                    StringBuilder sb = new StringBuilder();
                    sb.AppendLine($"Description:{ele.GetActualType().Description}");
                    sb.AppendLine($"RefNo:{ele.GetAsString(DbAttributeInstance.REF)}");
                    sb.AppendLine($"Name:{ele.GetAsString(DbAttributeInstance.NAMETY)}");
                    sb.AppendLine($"CLMID:{ele.GetAsString(DbAttributeInstance.CLMID)}");
                    sb.AppendLine($"UserLastMod:{ele.GetAsString(DbAttributeInstance.USERM)}");
                    sb.AppendLine($"Userclaim:{ele.GetAsString(DbAttributeInstance.USERC)}");
                    sb.AppendLine($"DateLastMod:{ele.GetAsString(DbAttributeInstance.LASTM)}");
                    tt.ToolTipText = sb.ToString();
                    tt.Show();
                }
                catch (Exception ex)
                {
                    Interaction.MsgBox(ex.Message, MsgBoxStyle.Critical);
                }
            };

            ut.MouseLeaveElement += (s, e) => { tt.Hide(); };
        }
    }

    catch (System.Exception ex)
    {
        Interaction.MsgBox(ex.Message, MsgBoxStyle.Exclamation);
    }

}

 

标签:C#,Win,tt,Infragistics,ele,鼠标悬停,var,sb,MARINE
From: https://www.cnblogs.com/NanShengBlogs/p/17924727.html

相关文章

  • 【资源汇总】TiDB-TiCDC 源码解读系列最全资源!!!
    作者:Billmay表妹TiCDC是什么?TiCDC(TiDBChangeDataCapture)是用来捕捉和输出TiDB/TiKV集群上数据变更的一个工具。它既可以作为TiDB增量数据同步工具,将TiDB集群的增量数据同步至下游数据库,也提供开放数据协议,支持把数据发布到第三方系统。还记得在社区的唠嗑茶话会中询问......
  • C++ Qt开发:如何使用信号与槽
    在Qt中,信号与槽(SignalandSlot)是一种用于对象之间通信的机制。是Qt框架引以为傲的一项机制,它带来了许多优势,使得Qt成为一个强大且灵活的开发框架之一。信号与槽的关联通过QObject::connect函数完成。这样的机制使得对象能够以一种灵活而松散耦合的方式进行通信,使得组件之间的交互......
  • ChatGPT对话为什么不用WebSocket而使用EventSource?
    文章目录1.引言2.WebSocket和EventSource简介2.1WebSocket2.2EventSource3.ChatGPT对话系统的特点4.EventSource的优势4.1简单易用4.2容错性强4.3兼容性良好5.为何选择EventSource而非WebSocket?5.1单向通信模式5.2长轮询模式5.3简化部署和维护6.使用EventSource的代......
  • 【Spring教程29】Spring框架实战:从零开始学习SpringMVC 之 服务器响应知识全面详解
    目录1环境准备2响应页面3返回文本数据4响应JSON数据5知识点总结欢迎大家回到《Java教程之Spring30天快速入门》,本教程所有示例均基于Maven实现,如果您对Maven还很陌生,请移步本人的博文《如何在windows11下安装Maven并配置以及IDEA配置Maven环境》,本文的上一篇为《SpringMVC......
  • @ConfigurationProperties(prefix = “xx.xx.xx“) 从配置文件中取值赋给类的属性
    @ConfigurationProperties(prefix=“xx.xx.xx“)从配置文件中取值赋给类的属性@ConfigurationProperties(prefix=“xx.xx.xx”)该注解的作用是从配置文件中取值赋给类的属性,当然也可以为方法的变量赋值/***服务访问URL*/@Component@ConfigurationProperties(value......
  • Centos7.4 安装jdk1.8
    1.下载镜像dockerpullprimetoninc/jdk:1.82.查看镜像 dockerimages3.启动容器 dockerrun-it--namejdk1.8-dprimetoninc/jdk:1.84.查看容器 dockerps 5.进入jdk安装目录sudodockerexec-itjdk1.8/bin/bash6.查看jdk版本java-version退出......
  • xxlJob Cron表达式 0 0 8,13 * * ?
    xxlJobCron表达式 008,13**?Cron有如下两种语法格式:(1)SecondsMinutesHoursDayofMonthMonthDayofWeekYear(2)SecondsMinutesHoursDayofMonthMonthDayofWeekcorn从左到右(用空格隔开):秒分小时月份中的日期月份星期中的日期年份字段 允许值 允许的特殊字......
  • [Bookmark]-C/C++
    C++类成员函数的函数指针sprintf与printf源码分析printf源码C语言实现简单的printf功能C中printf函数的实现原理TheGNUCLibraryglibc-printfC语言中的pow函数使用方法及注意事项,和常见报错原因,且分享实战中的使用注:仅用于记录使用过程中涉及的相关文档。......
  • 在Debian12的Conda环境下安装MOOSE
    基于MOOSE的应用程序开发所需的依赖项的大量库首选方法是通过Conda获取。按照以下说明使用Conda在计算机上创建环境。1.安装Miniforge。根据您的平台,请按照以下步骤安装Miniforge。如果您在这些步骤中遇到问题,请访问我们的Conda故障排除指南。LinuxUsers:Linux用户:......
  • React 的 Suspense 和 ErrorBoundary 还有这种关系?
    Suspense组件想必大家都用过,一般是和React.lazy结合用,用来加载一些异步组件。比如这样一个组件://src/Aaa.jsxexportdefaultfunctionAaa(){return<div>aaa</div>}就可以在另一个组件里用lazy+Suspense异步加载:importReact,{Suspense}from'react';const......