C#中datagridview使用tooltip控件显示单元格内容的方法
作者:aparche 发布时间:2022-04-15 12:23:23
标签:C#,datagridview,tooltip
本文实例讲述了C#中datagridview使用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;
using System.Data.SqlClient;
namespace Exam2
{
public partial class MainForm : Form
{
private int cellColumnIndex = -1;//列索引
private int cellRowIndex = -1;//行索引
public MainForm()
{
InitializeComponent();
//设置提示工具的相关属性值
this.dgvUserInfo.ShowCellToolTips = false;
this.toolTip.AutomaticDelay = 0;
this.toolTip.OwnerDraw = true;
this.toolTip.ShowAlways = true;
this.toolTip.ToolTipTitle = " ";
this.toolTip.UseAnimation = true;
this.toolTip.UseFading = true;
}
/// <summary>
/// 显示用户信息
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void MainForm_Load(object sender, EventArgs e)
{
string sql = "select 用户ID=userID,用户名=name,用户登录名=username,用户密码=userPassword from userInfo";
SqlConnection conn = DBHelper.GetConnection();
SqlDataAdapter adapter = new SqlDataAdapter(sql,conn);
DataSet ds = new DataSet();
adapter.Fill(ds);
this.dgvUserInfo.DataSource = ds.Tables[0];
}
private void dgvUserInfo_CellMouseLeave(object sender, DataGridViewCellEventArgs e)
{
this.toolTip.Hide(this.dgvUserInfo);//鼠标移出单元格后隐藏提示工具
}
private void dgvUserInfo_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
//判断选择单元格的有效性
if (e.RowIndex < 0 || e.ColumnIndex < 0)
{
return;
}
this.toolTip.Hide(this.dgvUserInfo);
this.cellColumnIndex = e.ColumnIndex;//获取列索引
this.cellRowIndex = e.RowIndex;//获取行索引
if (this.cellColumnIndex >= 0 && this.cellRowIndex >= 0)
{
Point mousePos = PointToClient(MousePosition);//获取鼠标当前的位置
//获取鼠标移入的单元格中的值
string tip = this.dgvUserInfo[this.cellColumnIndex, this.cellRowIndex].Value.ToString();
this.toolTip.Show(tip, this.dgvUserInfo, mousePos);//在指定位置显示提示工具
}
}
//绘制提示工具
private void toolTip_Draw(object sender, DrawToolTipEventArgs e)
{
e.Graphics.FillRectangle(Brushes.AliceBlue, e.Bounds);
e.Graphics.DrawRectangle(Pens.Chocolate, new Rectangle(0, 0, e.Bounds.Width - 1, e.Bounds.Height - 1));
e.Graphics.DrawString(this.toolTip.ToolTipTitle + e.ToolTipText, e.Font, Brushes.Red, e.Bounds);
}
}
}
希望本文所述对大家C#程序设计有所帮助。


猜你喜欢
- 我发现网上许多讲解javaweb 项目 SSM(Spring,SpringMVC,Mybatis)配置的时候有些重点没有提到,一下我会贴上一
- 动态替换Spring容器中的Bean原因最近在编写单测时,发现使用 Mock 工具预定义 Service 中方法的行为特别难用,而且无法精细
- 如果我们做一个小型的web站,而且刚好选择的kotlin 和Spring Boot技术栈,那么上传文件的必不可少了,当然,如果你做一个中大型
- 本文实例讲述了java用接口、多态、继承、类计算三角形和矩形周长及面积的方法。分享给大家供大家参考。具体如下:定义接口规范:/** * @
- 关于Windows10 Java环境变量配置问题的解决办法由于最近有一些时间,所以想要把之前学过一段时间的Java重新捡起来看看,之前的学习
- 前言 * 体系是Struts2框架的重要组成部分,不夸张的说,没有 * 体系,也就没有这么好用的Struts2框架了。在Struts2框架中
- 本文实例为大家分享了unity实现UI元素跟随3D物体的具体代码,供大家参考,具体内容如下在Canvas不同的渲染模式(RenderMode
- 本文实例讲述了C#画笔Pen绘制自定义线的帽子。分享给大家供大家参考。具体如下:using System;using System.Coll
- 目录示例原理DefaultBeanDefinitionDocumentReaderparseDefaultElementimportBean
- 之前使用springMVC+spring+mybatis,总是被一些繁琐的xml配置,有时候如果配置出错,还要检查各种xml配置,偶然接触到
- 序言for循环语句是java循环语句中最常用的循环语句,一般用在循环次数已知的情况下使用。for循环语句的语法格式如下:java语言 for
- 1.Java 9以前堆栈遍历到目前为止,官方解决方案是获取当前线程并调用其getStackTrace()方法:StackTraceEleme
- 本文实例为大家分享了Java实现窗体程序显示日历的具体代码,供大家参考,具体内容如下实训要求:1.使用BorderLayout 进行总体布局
- 目录前提第一步、去官网创建高德Key第二步 通过Gradle集成SDK(方便):第三步 配置
- 项目中有个要求,对上传服务器的图片大小进行判断,大于500k的图片要进行压缩处理,让其小于500k后在上传。可以通过java api的Ima
- 本文实例讲述了Android编程实现屏幕禁止休眠的方法。分享给大家供大家参考,具体如下:实现这一功能的方法有两种,一种是在Manifest.
- 前言本文主要给大家介绍了关于Android模仿美团顶部滑动菜单的相关内容,分享出来供大家参考学习,下面话不多说了,来一起看看详细的介绍吧。先
- 解压的工具类package com.example.videodemo.zip; public class ZipProgressUtil
- 手机游戏实现Android隐藏虚拟按键,供大家参考,具体内容如下在华为等型号的手机会有虚拟按键,在进入游戏的时候,需要全屏隐藏这个按键,并在
- 在APP项目的开发过程中,经常会用到分享图片的功能,有时候还需要根据当前用户信息获取指定的分享图片,比如要求在用户分享图中显示用户名、Uid