欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

C#中datagridview使用tooltip控件显示单元格内容的方法

程序员文章站 2023-11-21 23:12:58
本文实例讲述了c#中datagridview使用tooltip控件显示单元格内容的方法。分享给大家供大家参考,具体如下: 代码如下: using system;...

本文实例讲述了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#相关内容感兴趣的读者可查看本站专题:《c#常见控件用法教程》、《winform控件用法总结》、《c#数据结构与算法教程》、《c#面向对象程序设计入门教程》及《c#程序设计之线程使用技巧总结

希望本文所述对大家c#程序设计有所帮助。