文档章节

C#自定义控件:鼠标悬停时触发的存放解释性文字信息的气泡

北风其凉
 北风其凉
发布于 2016/05/25 23:46
字数 318
阅读 696
收藏 2

最近工作中遇到一个场景,对部分字段,在后面要放置一个问号图标,当鼠标悬停在该图标上时,要弹出解释性文字简要描述字段的功能。

新建一个自定义控件,里面包了一个PictureBox:

该控件C#代码如下:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Drawing;
using System.Data;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace CustuomControl
{
    public partial class QuestionMark : UserControl
    {
        public QuestionMark()
        {
            InitializeComponent();

            //显示气泡
            toolTip.AutoPopDelay = 30000; 
            toolTip.IsBalloon = true;
            //toolTip.UseFading = true;
            string noticeInfo = NoticeDetail.GetNoticeInfo(NoticeCode);
            toolTip.SetToolTip(this.pcbQuestionMark, noticeInfo);
        }

        ToolTip toolTip = new ToolTip();     

        /// <summary>
        /// 提示信息代码
        /// </summary>
        private string _noticeCode;
        /// <summary>
        /// 提示信息代码
        /// </summary>
        public string NoticeCode
        {
            get
            {
                return _noticeCode;
            }
            set
            {
                _noticeCode = value;
                string noticeInfo = NoticeDetail.GetNoticeInfo(NoticeCode);
                toolTip.SetToolTip(this.pcbQuestionMark, noticeInfo);
            }
        }

    }
}

其中用到的NoticeDetail类,存储了提示信息编号与提示信息的关系。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace CustuomControl
{
    public class NoticeDetail
    {
        public static string GetNoticeInfo(string noticeCode)
        {
            string result = "";
            if (!string.IsNullOrWhiteSpace(noticeCode))
            {
                switch (noticeCode)
                {
                    /** 所有的说明信息存储于此 */
                    case "100001": result = "英文名:Yue Buqun"; break;
                }
            }
            return result;
        }
    }
}

在使用控件时,可直接向NoticeCode属性赋值,也可以自己写代码手动赋值。

END

© 著作权归作者所有

北风其凉

北风其凉

粉丝 120
博文 497
码字总数 462305
作品 4
朝阳
程序员
私信 提问
C# - 基于LinkLabel可动态生成多超链接信息的自定义控件

一、效果示意 今天设计了一个自定义控件,用于满足下面的场景: 有一句话,有多个子句组成,每一个子句都要设置对应的超链接。举个例子,比如现有要素:姓名、国籍、生年、卒年。可以组成这么...

北风其凉
2015/12/22
364
0
Windows 任务栏增强工具推荐,让任务栏更好用

前言 Windows 的任务栏作为桌面常驻项目,一般用作固定图标和切换程序等使用。 我们还可以通过一些任务栏增强小工具,使任务栏具备更多更实用的功能,发挥更大的作用,也让我们的操作更加方便...

己立
2018/10/13
0
0
高德地图(AMap)JavaScript API的使用

申请JSAPI的开发者key 申请地址:http://lbs.amap.com/dev/key 引入高德地图JavaScript API文件: 创建地图容器 在页面body里你想展示地图的地方创建一个div 容器,并指定id标识: 指定容器大小...

驛路梨花醉美
2016/12/22
534
0
Bolt界面引擎中XLUE布局XML文件节点属性配置详解

一.常用关键字及说明 1. 基本节点关键字 节点名 节点位置级别 父节点 节点描述 xlue 1 N/A xml根节点 objtreetemplate 2 xlue 对象树模板 hostwndtemplate xlue 宿主窗口模板 objtemplate ...

霄霄月月
2012/07/26
763
0
使用C#语言实现的查询条件界面展开/收起方案

先简单说一下应用场景,现有一个C#客户端的查询界面,上方放置查询条件,下方放置查询结果。因为实际情况中查询条件可能占了好几行的位置,所以希望在界面上默认只保留一行最主要的查询条件,...

北风其凉
2016/11/21
3.1K
14

没有更多内容

加载失败,请刷新页面

加载更多

java快递电子面单打印接口对接demo

之前的后天管理系统的电子面单打印使用的是灵通打单。 使用相对比较麻烦,需要到处Excel之后再导入,麻烦。 快递鸟有电子面单api,后台系统直接对接很是方便,不过也遇到了好些问题。 不难是...

程序的小猿
28分钟前
3
0
fasjtjson文档

https://github.com/alibaba/fastjson/wiki/JSONField

jirak
28分钟前
3
0
Mybatis中插入多条记录

Oracle数据库 实现方法 <insert id="saveWithdrawLog"> INSERT ALL INTO OSM_TRADE_DETAIL(SID,MBR_ID,USR_ID,TRADE_MONEY,TRADE_TYPE,TRADE_TIME,TRADE_WAY,PAY_ID) VALUES(#{si......

豫华商
29分钟前
3
0
Flink on YARN(下):常见问题与排查思路

作者:杨弢(搏远) Flink 支持 Standalone 独立部署和 YARN、Kubernetes、Mesos 等集群部署模式,其中 YARN 集群部署模式在国内的应用越来越广泛。Flink 社区将推出 Flink on YARN 应用解读...

开源中国小二
31分钟前
3
0
技术沙龙|京东云端到端多媒体关键技术揭秘

编者按:从带来更高编码效率、更好的用户体验的京享高清,到直播架构与网络演进优化,从而为用户带来更流畅的观看体验,以及运维系统的异常自动修复和高弹性的多媒体存储架构,一层一层展示出...

京东云技术新知
31分钟前
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部