在winform应用程序开发中,DataGridView是 用的较多的、也(几乎)是数据(列表)显示必用的控件,而此文就是针对DataGridView控件的一些使用做些讲解。

一. DataGridView单元格提示

这个熟悉的朋友会选择CellToolTipTextNeeded 事件实现,也确实,然而此事件有个硬性的条件(或者说 让人感觉很不舒服的限制),如图:

上图中 红色区域[具体见msdn:http://msdn.microsoft.com/zh-cn/library/system.windows.forms.datagridview.celltooltiptextneeded(VS.80).aspx]就是我所说的限制,这样当我们想实现用代码一行行add Row时,此事件就与我们想要的发生冲突(无法实现单元格提示) ——因为在 DataGridView绑定的数据源(设置了 DataSource)后 或 该控件的 VirtualMode 属性为 true (此时行数无法改变),不能再动态添加行,但我们想要的 单元格提示效果必须还得想办法实现(在最初遇到此问题时,感觉有点儿'山穷水尽疑无路'),而后静下心去想,终用DataGridView的CellMouseEnter事件解决,代码如下:

代码

canInfoDgv.CellMouseEnter +=new DataGridViewCellEventHandler(canInfoDgv_CellMouseEnter);

void canInfoDgv_CellMouseEnter(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >-1)
{
DataGridView dgv = (DataGridView)sender;
DataGridViewCell cellObj = dgv.Rows[e.RowIndex].Cells[e.ColumnIndex];
switch (dgv.Columns[e.ColumnIndex].Name)
{
case"colswName": cellObj.ToolTipText ="点击浏览此食物详细信息!"; break;
case"colswWeight": cellObj.ToolTipText ="点击编辑此食物重量!"; Console.WriteLine("canInfoDgv_CellMouseEnter :"+ cellObj.Value.ToString()); break; //
case"colswYl": SetColswYl_ToolTip(cellObj); break;
case"colEdit": cellObj.ToolTipText ="点击编辑菜肴的组成!"; break;
case"colDo": cellObj.ToolTipText ="点击删除此食物!"; break;
default: break;
}
dgv =null;
cellObj =null;
}
}

运行效果:

2.DataGridView属性设置的通用方法

代码

///<summary>
/// 设置DataGridView通用属性
///</summary>
///<param name="dgv"></param>
protectedvoid SetDgv_Com(DataGridView dgv)
{
dgv.AllowUserToAddRows =false;
dgv.AllowUserToResizeColumns =false;
dgv.AllowUserToResizeRows =false;
dgv.RowHeadersVisible =false;
dgv.EditMode = DataGridViewEditMode.EditOnEnter;
//绑定时不自动创建列(解决列的位置不固定)
dgv.AutoGenerateColumns =false;
}

///<summary>
/// 设置DataGridView交替行样式
///</summary>
///<param name="dgv"></param>
///<param name="deRowColor">默认行颜色</param>
///<param name="altRowColor">交替行颜色</param>
protectedvoid SetDgv_AlternatingRowColor(DataGridView dgv, Color deRowColor, Color altRowColor)
{
dgv.RowsDefaultCellStyle.BackColor = deRowColor;
dgv.AlternatingRowsDefaultCellStyle.BackColor = altRowColor;
}

///<summary>
/// 设置 DataGridView 特殊样式 [无边框 内容居中 设置表头背景色]
///</summary>
protectedvoid SetDgv_SpecialStyle(DataGridView dgvObj, Color HeaderBgColor,Color selectedCellBgColor)
{
SetDgv_SpecialStyle(dgvObj, HeaderBgColor, selectedCellBgColor, System.Drawing.SystemColors.Window, true);
}

///<summary>
/// 设置 DataGridView 特殊样式 [无边框 内容居中 设置表头背景色]
///</summary>
protectedvoid SetDgv_SpecialStyle(DataGridView dgvObj, Color HeaderBgColor, Color selectedCellBgColor,Color bgColor,bool isNoBorder)
{
dgvObj.BackgroundColor = bgColor;
if (isNoBorder)
{
dgvObj.BorderStyle = BorderStyle.None;
dgvObj.CellBorderStyle = DataGridViewCellBorderStyle.None;
dgvObj.ColumnHeadersBorderStyle = DataGridViewHeaderBorderStyle.None;
}

//设置单元格内容居中显示 ColumnHeadersDefaultCellStyle:是设置列标题的样式
dgvObj.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
if (selectedCellBgColor !=null)
dgvObj.DefaultCellStyle.SelectionBackColor = selectedCellBgColor;

dgvObj.DefaultCellStyle.SelectionForeColor = Color.Black;
dgvObj.ColumnHeadersDefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter;
dgvObj.ColumnHeadersDefaultCellStyle.BackColor = HeaderBgColor;
dgvObj.EnableHeadersVisualStyles =false;
}

写的很简单,希望对大家多提意见,‘板砖’也悦收,——“您的支持,是我写下去的动力!”。

WinFormDataGridView单元格提示和相关应用 之配餐系统的开发相关推荐

  1. Table表格的单元格提示

    表格的单元格显示 单元格内容,如果太多显示为省略号 鼠标放在上面,显示里面的全部内容 CSS关键代码 table{table-layout: fixed; }td{white-space: nowra ...

  2. abap al设置单元格可编辑 oo_利用WPS做业务系统的超级编辑器

    业务系统中的数据很笼统的分可以分为两大类,一个是结构化的,通常用关系型数据库来存储管理:一个是非结构化的,在这类数据中,可能最多.价值密度最大的就是文档.如何更便捷高效的生成或分析文档,就是业务系统通 ...

  3. DataGridView设置单元格的提示内容ToolTip详解

    这篇文章介绍了DataGridView设置单元格提示内容ToolTip的方法,文中通过示例代码介绍的非常详细.对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下 ToolTip属性用来设置 ...

  4. ruoyi导出excel时合并单元格

    ruoyi版本 3.8.2 首先第一步 增加注解 /*** 合并行* 参数1合并第一个参数为合并基准列,其他列用逗号拼接,依据基准列进行当前单元行合并 参数:如1,7, 8*/ public Stri ...

  5. springboot项目导出excel 合并单元格表格

    springboot项目导出excel 合并单元格表格 导出效果 业务controller 业务数据 业务实体类 注解MyExcel.java 注解 MyExcels 导出工具类MyExcelUtil ...

  6. Excel导入表头名称重复处理 多级表头合并单元格的标题导入数据

    背景 由于业务需求是excel模板不可以修改,但是excel表中的表头是重复的,目前使用的控件会取最后一个赋值,前面的都丢弃了.并且有的表格还是多级表头的情况. 解决办法 使用的是ruoyi框架中的导 ...

  7. iOS开发UI篇—简单介绍静态单元格的使用

    iOS开发UI篇-简单介绍静态单元格的使用 一.实现效果与说明 说明:观察上面的展示效果,可以发现整个界面是由一个tableview来展示的,上面的数据都是固定的,且几乎不会改变. 要完成上面的效果, ...

  8. 在excel工作表中c1单元格_已知Excel工作表中A1单元格和B1单元格的值分别为“电子科技大学”、“信息中心”,要求在C1单元格显示“...

    已知Excel工作表中A1单元格和B1单元格的值分别为"电子科技大学"."信息中心",要求在C1单元格显示" 更多相关问题 所谓犯罪现象的特性,是指为 ...

  9. 合并单元格后打字换行_excel中合并了单元格以后往里面打字如果打两行字,怎么换行...

    点击查看excel中合并了单元格以后往里面打字如果打两行字,怎么换行具体信息 答:1.演示使用的软件为Excel电子表格,软件版本为office家庭和学生版2016. 2.为了演示如何在合并的单元格中 ...

最新文章

  1. 新元素之video,audio,meter,datalist,keygen,output
  2. LeetCode 2011. 执行操作后的变量值
  3. Redis工作笔记-事务
  4. 【转】Google Maps Android API V2的使用及问题解决
  5. [转]【建议收藏】优秀实用的OpenCV开源项目汇总
  6. 个人所得税计算及多人避税问题
  7. python集合排序_numpy排序与集合运算用法示例
  8. 51nod 1605:棋盘问题
  9. 工频干扰频谱测量_力参数传感器的电阻应变测量系统
  10. 【单目标优化求解】基于matlab多子群改进的海洋捕食者算法(MSMPA)求解单目标优化问题【含Matlab源码 1783期】
  11. h5页面判断安卓或ios点击下载App
  12. 0成本开发一个外卖返利领劵小程序|外卖返利系统
  13. opencv学习笔记(一) 环境配置/打开一张图片/github(git)初探
  14. 服务端判断客户端是移动端浏览器还是PC端浏览器
  15. 《数据挖掘》读书笔记2、3章节
  16. Python:实现integer partition整数分区算法(附完整源码)
  17. 精心收集的几十个ASP编程网址
  18. 时隔一年才发现嵌入式到底指的是什么
  19. Day5_HTML+CSS+JS——RGB三原色
  20. 2020中国超级计算机排名第一,最新top500超级计算机榜单 全球超级计算机榜单2020新一期:中国部署数量世界排名首位...

热门文章

  1. 2021年广东高考各科成绩查询,2017年广东高考成绩五种查询方式一览
  2. 2019-06-03 Java学习日记之多线程下GUI
  3. Ansible复制文件copy和执行脚本shell(学习笔记二)
  4. linux scp命令参数及用法详解--linux远程复制拷贝命令使用实例【转】
  5. 用usecase获取需求的方法是否有缺陷,还有什么地方需要改进
  6. JVM 对象引用标记 与 内存回收算法
  7. 4--RESTful应用程序
  8. 用Node操作Firebird。
  9. Citrix 整体架构 端口列表 Tcp Port
  10. 用二分法求方程的近似解的方法