C#中datagridview使用tooltip控件显示单元格内容的方法
本文实例讲述了C#中datagridview使用tooltip控件显示单元格内容的方法。分享给大家供大家参考,具体如下:
代码如下:
usingSystem;
usingSystem.Collections.Generic;
usingSystem.ComponentModel;
usingSystem.Data;
usingSystem.Drawing;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Windows.Forms;
usingSystem.Data.SqlClient;
namespaceExam2
{
publicpartialclassMainForm:Form
{
privateintcellColumnIndex=-1;//列索引
privateintcellRowIndex=-1;//行索引
publicMainForm()
{
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>
///<paramname="sender"></param>
///<paramname="e"></param>
privatevoidMainForm_Load(objectsender,EventArgse)
{
stringsql="select用户ID=userID,用户名=name,用户登录名=username,用户密码=userPasswordfromuserInfo";
SqlConnectionconn=DBHelper.GetConnection();
SqlDataAdapteradapter=newSqlDataAdapter(sql,conn);
DataSetds=newDataSet();
adapter.Fill(ds);
this.dgvUserInfo.DataSource=ds.Tables[0];
}
privatevoiddgvUserInfo_CellMouseLeave(objectsender,DataGridViewCellEventArgse)
{
this.toolTip.Hide(this.dgvUserInfo);//鼠标移出单元格后隐藏提示工具
}
privatevoiddgvUserInfo_CellMouseEnter(objectsender,DataGridViewCellEventArgse)
{
//判断选择单元格的有效性
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)
{
PointmousePos=PointToClient(MousePosition);//获取鼠标当前的位置
//获取鼠标移入的单元格中的值
stringtip=this.dgvUserInfo[this.cellColumnIndex,this.cellRowIndex].Value.ToString();
this.toolTip.Show(tip,this.dgvUserInfo,mousePos);//在指定位置显示提示工具
}
}
//绘制提示工具
privatevoidtoolTip_Draw(objectsender,DrawToolTipEventArgse)
{
e.Graphics.FillRectangle(Brushes.AliceBlue,e.Bounds);
e.Graphics.DrawRectangle(Pens.Chocolate,newRectangle(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#程序设计有所帮助。