C# ListView 自定义ToolTip 显示
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms; namespace DemoTolltip
{
public partial class Form2 : Form
{
public Form2()
{
InitializeComponent();
}
private ToolTip lvTp = new ToolTip();
private ListViewItem currentItem = new ListViewItem();
private void Form2_Load(object sender, EventArgs e)
{
listView1.View = View.LargeIcon;
listView1.FullRowSelect = true;
// listView1.GridLines = true;
listView1.Columns.Add("Column1");
listView1.Columns.Add("Column2");
for (int i = 0; i < 10; i++)
{
ListViewItem lvi = new ListViewItem();
lvi.SubItems[0].Text = i.ToString();
lvi.ImageIndex = i;
lvi.SubItems.Add("Item" + i.ToString());
lvi.ToolTipText = "Item" + i.ToString() +"\r\n" +strShowIms; listView1.Items.Add(lvi);
}
// listView1.ShowItemToolTips = true;
listView1.MouseMove += new MouseEventHandler(listView1_MouseMove);
lvTp.OwnerDraw = true;
lvTp.Draw += new DrawToolTipEventHandler(lvTp_Draw);
lvTp.Popup += new PopupEventHandler(lvTp_Popup);
}
string strShowIms = @"sssAAAAAAA
1 AAAAAAAAAAAAAAAAAAAAA
2 AAAAAAA
2 AAAAAAA
3 AAAAAAA
4 AAAAAAA
5 AAAAAAA
6 AAAAAAA
7 AAAAAAA
8 AAAAAAA
9 AAAAAAA
";
string strText = "";
public void lvTp_Popup(object sender, PopupEventArgs e)
{
Size s = TextRenderer.MeasureText(strText, f);
e.ToolTipSize = new Size(s.Width, s.Height + 40);
}
Font f = new Font("宋体", 10.0f);
Font fTitle = new Font("宋体", 12.0f);
void lvTp_Draw(object sender, DrawToolTipEventArgs e)
{
using (e.Graphics)
{
int x = e.Bounds.Width;
int y = e.Bounds.Height;
e.DrawBackground(); SolidBrush b = new SolidBrush(Color.FromArgb(233, 240, 245));//矩形背景色
SolidBrush border = new SolidBrush(Color.FromArgb(190, 219, 249));//边框颜色
Rectangle recg = new Rectangle(0, 0, x, 30); e.Graphics.FillRectangle(b, recg);
e.Graphics.DrawRectangle(new Pen(border), recg);
e.Graphics.DrawRectangle(new Pen(border), 0, 0, x - 1, y - 1);
int tempx = x / 4;
if (x < 180 && x > 100)
{
tempx = 10;
}
else if (x <= 100)
{
tempx = 5;
}
e.Graphics.DrawImage(global::DemoTolltip.Properties.Resources.当前床位信息, new PointF(tempx, 5));
e.Graphics.DrawString("当前信息", fTitle, Brushes.Black, new PointF(tempx + 40, 7));
// e.Graphics.DrawLine(new Pen(Brushes.Blue),new Point(1,30),new Point(400,30));
e.Graphics.DrawString(e.ToolTipText, f, Brushes.Black, new PointF(4, 40));
}
} void listView1_MouseMove(object sender, MouseEventArgs e)
{
ListViewItem lvi = listView1.GetItemAt(e.X, e.Y);
if (lvi != null && lvi != currentItem)
{
strText = lvi.ToolTipText;
currentItem = lvi;
lvTp.Show(lvi.ToolTipText, listView1, e.Location);
}
else if (lvi == null)
{
strText="";
lvTp.Hide(listView1);
}
currentItem = lvi;
} }
}
C# ListView 自定义ToolTip 显示的更多相关文章
- echarts自定义tooltip显示
使用echarts展示图形的时候,鼠标滑倒图像上,想展示除了系列名,数据名,数据值以外的数据,这时需要使用tooltip的fommater方式进行配置,另外对数据格式也有一定的要求. 如图所示:如果想 ...
- Echarts 的悬浮框tooltip显示自定义格式化
最近做的项目用到echarts雷达图,但是由于地市过多,遇到悬浮框显示问题被遮住 如图: 可以看到上面从兴安开始数据就被遮住了 为了解决这个被遮住的悬浮框,达到tooltip自定义格式 完成后的效果如 ...
- 用WPF实现在ListView中的鼠标悬停Tooltip显示
原文:用WPF实现在ListView中的鼠标悬停Tooltip显示 一.具体需求描述 在WPF下实现,当鼠标悬停在ListView中的某一元素的时候能弹出一个ToolTip以显示需要的信息. 二.代码 ...
- DevExpress.XtraGrid.GridControl 实现自定义tooltip
DevExpress.XtraGrid.GridControl 控件默认的tooltip显示的每一个单元格的文本值,但是实际工作中会出现各种需求.我这里就有一个列是折扣率显示的值是0-1之间的两位小数 ...
- WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等,若有不明白的地方可以参考本系列前面的文章,文末附有部分文章链接. 本文主要内容: Dat ...
- Swing图层的应用——实现tooltip显示
没有错是世纪前的swing. 在使用Swing的时候有个问题一直没有解决,就是Swing自带的tooltip不会跟随鼠标进行移动,而且移动到边界就会遮挡的问题.JCompoent有个createToo ...
- 【转】WPF自定义控件与样式(7)-列表控件DataGrid与ListView自定义样式
一.前言 申明:WPF自定义控件与样式是一个系列文章,前后是有些关联的,但大多是按照由简到繁的顺序逐步发布的等. 本文主要内容: DataGrid自定义样式: ListView自定义样式: 二.Dat ...
- C# 解决ListView控件显示数据出现闪屏的问题
一.发现问题 如果发送数据过快的情况下,ListVies滚屏显示数据时会显示闪屏,如下所示现象: 二.解决问题 根据出现闪屏的情况,在网上查了资料要使用双缓存的办法来处理.其原理是数据在缓存区中进行处 ...
- 《连载 | 物联网框架ServerSuperIO教程》- 13.自定义视图显示接口开发,满足不同的显示需求
1.C#跨平台物联网通讯框架ServerSuperIO(SSIO)介绍 <连载 | 物联网框架ServerSuperIO教程>1.4种通讯模式机制. <连载 | 物联网框架Serve ...
随机推荐
- C++中的一些小知识
判断字符是否为数字 在C/C++中有isdigit()来判断一个字符是否为数字 原型:int isdigit(char c); 用法:#include <ctype.h> (C语言):#i ...
- 学习ios【2】Objective-C 数字和字符串
一 数字 1.使用Foundation.h可以直接导入所有的头文件. 在XCode中,想查看某个方法帮助,可以将光标放在方法上,按住option键同时单击即可. 官方文档:https://develo ...
- Objective-C( Foundation框架 一 NSDictionary (NSMutaleDictionary))
NSDictionary 不可变的字典 创建字典的方法 // 创建字典的方式 NSDictionary *dy = [NSDictionary dictionaryWithObject:@" ...
- JBoss-7.1.1 http访问端口修改
修改http服务端口 找到 jboss-as-7.1.1.Final/standalone/configuration/standalone.xml文件,找到第298行,如下图: 如果我们想改成80端 ...
- MySql 获取当前节点及递归所有上级节点
-- MySql 获取当前节点及递归所有上级节点 -- 参数说明:resultField:查询返回字段,idd 要查询的资源ID值,idFieldName ID字段名,parentIdFieldNam ...
- MySql创建树结构递归查询存储过程
在实现F2工作流底层多数据库支持时发现Oracel和mssql都有提供递归子查询,而MySql却没有,没办法需要自己构建存储过程来提供这个递归子查询的功能. -- 当前节点及子节点 -- 参数说明:i ...
- fileupload图片预览功能
FileUpload上传图片前首先预览一下 看看效果: 在专案中,创建aspx页面,拉上FileUpload控件一个Image,将用来预览上传时的图片. <%@ Page Language=&q ...
- ros科大讯飞语音识别
转自http://www.ncnynl.com/archives/201611/1069.html ROS入门教程-编写科大讯飞语音SDK的ROS包 说明 ROS软件包xfei_asr是集成自科大讯飞 ...
- Bootstrap <基础七>按钮
任何带有 class .btn 的元素都会继承圆角灰色按钮的默认外观.但是 Bootstrap 提供了一些选项来定义按钮的样式,具体如下表所示: 以下样式可用于<a>, <butto ...
- Android中的Context
Context用来访问全局信息的接口,比如影城程序的资源.一些常用的组件都是继承自Context,目的就是方便的访问资源,比如Activity, Service.... 从Context访问本组件的资 ...