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 ...
随机推荐
- Solr环境搭建过程中遇到的问题
Solr下载地址:http://www.apache.org/dyn/closer.lua/lucene/solr/6.3.0 Solr搭建步骤转自:http://blog.csdn.net/wbcg ...
- SQL Server系列
这里整理了我学习SQL Server的全部文章,包括从基础到高级,做一个目录,方便以后查找. SQL Server数据类型 SQL Server中开发常用的数据类型 单表查询和多表查询 一个单表查询的 ...
- Ionic 的 ng-class 在聊天功能上面的巧妙运用
很多人在问我是ionic好呢?还是react好呢? 其实我只想告诉你去看文档啊,不用用怎么知道哪个合适呢? 嘿嘿但是真的这么问的时候我也不会这么回答的,那岂不是太张狂了哈哈哈 react我确实没有用过 ...
- 6、HTML5表单提交和PHP环境搭建
---恢复内容开始--- 1.块元素 块元素在显示的时候,通常会以新行开始 如:<h1> <p> <ul> <!-- 块—>注释 <p>he ...
- 四核RP4412开发板使用Xshell连接的com口应与电脑端口一致
使用Xshell工具连接的com口要与电脑接的com口端号一样. 问:我的RP4412开发板现在按照<烧写视频>操作,在XSHELL软件里找不到板子的串口号.我用的XP系统装了USB转串口 ...
- Struts2_三种传参数方法
1.通过属性传参数(Attr)UserAction.java package com.bebig.struts2.user.action;import com.opensymphony.xwork2. ...
- TFS Workspace 更改电脑名称
不小心改了计算机名称 导致VS在保存项目的时候,包如下错误: 解决方法: 第一步: 第二步:输入如下片段 tf workspaces /updateComputerName:旧计算机名称 /coll ...
- 理解js中__proto__和prototype的区别和关系
首先,要明确几个点:1.在JS里,万物皆对象.方法(Function)是对象,方法的原型(Function.prototype)是对象.因此,它们都会具有对象共有的特点.即:对象具有属性__proto ...
- Unity3d获取APK签名及公钥的方法
在Unity3d项目中获取APK包签名公钥的方法,核心思想就是通过JNI调用Android提供的方法.不过Unity3d提供了比JNI更上一层的类AndroidJavaObject以及继承它的Andr ...
- 配置Java开发IDE
http://www.cnblogs.com/feichexia/archive/2012/11/07/Vim_JavaIDE.html