(原创文章,转载请注明来源:http://blog.csdn.net/hulihui)
最近上传的一个TDataGridViewEx组件:
带合计行的多层表头组件TDataGridViewEx演示程序,在自己使用时发现还是有Bug,即设置背景颜色的行或单元格,在列宽度变化、水平滚动条移动时,有些单元格的边框消失了
。显然是重载OnCellPainting方法时没有绘制单元格边框。
于是,在网上查找关于设置DataGridView表格行或单元格背景颜色的文章。普遍的做法是在窗体中捕获DataGridView事件(如CellPaintIng、RowPostPaint或RowPrePaint等),而不是在派生组件中实现。结合拙文: 带合计行的多层表头组件TDataGridViewEx实现兼假期总结,现将相关实现技术介绍如下。
TDataGridViewEx组件实现表格背景行(单元格)颜色设置,基本思路来源著名的Delphi组件TAdvStringGrid,即用事件方式达到目的,技术实现步骤如下:
于是,在网上查找关于设置DataGridView表格行或单元格背景颜色的文章。普遍的做法是在窗体中捕获DataGridView事件(如CellPaintIng、RowPostPaint或RowPrePaint等),而不是在派生组件中实现。结合拙文: 带合计行的多层表头组件TDataGridViewEx实现兼假期总结,现将相关实现技术介绍如下。
TDataGridViewEx组件实现表格背景行(单元格)颜色设置,基本思路来源著名的Delphi组件TAdvStringGrid,即用事件方式达到目的,技术实现步骤如下:
- 定义事件委托:TSetCellBackgroundColorEvent
- 定义事件参数:TSetCellBackgroundColorEventArgs
- 申明类型事件:exSetCellBackgroundColor
- 重载DataGridView的OnCellPaint方法
- using System;
- using System.ComponentModel;
- using System.Windows.Forms;
- using System.Drawing;
- namespace CSUST.Data
- {
- public class TDataGridViewEx : DataGridView
- {
- [Description("Set