DataGridView重绘单元格中某些字体颜色,大小
来源:互联网 发布:scada数据采集技术 编辑:程序博客网 时间:2024/05/18 03:08
主要通过对单元格进行重绘,改变元单元格字体大小和颜色
protected override void OnCellPainting(DataGridViewCellPaintingEventArgs e) { base.OnCellPainting(e); if (e.Value != null) { string cellWord = e.Value.ToString();//单元格原本内容 string keyWord = e.Value.ToString();//要改变的单元格关键字内容 Rectangle cellRect = e.CellBounds;//默认单元格 Rectangle keyRect = e.CellBounds;//单元格内容区域,默认定义为单元格大小 float fontSizeWeight = 96 / (72 / e.CellStyle.Font.Size); // 字体实际像素宽度 float fontSizeHeight = 96 / (72 / e.CellStyle.Font.Size); // 字体实际像素高度 //关键字的坐标 keyRect.X += cellWord.Substring(0, cellWord.IndexOf(keyWord)).Length * (int)(fontSizeWeight / 2); keyRect.Y += (e.CellBounds.Height - (int)fontSizeHeight) / 2; //原文本的Y坐标 cellRect.Y = keyRect.Y; using (Brush foreColor = new SolidBrush(e.CellStyle.ForeColor), fontColor = new SolidBrush(this.FontColor)) { //绘制背景色 e.PaintBackground(e.ClipBounds, false); //绘制背景色(被选中状态下) if (e.State == (DataGridViewElementStates.Displayed | DataGridViewElementStates.Selected | DataGridViewElementStates.Visible)) e.PaintBackground(e.ClipBounds, true); //分别绘制原文本和现在改变颜色的文本 e.Graphics.DrawString(cellWord, this.Font, foreColor, cellRect, StringFormat.GenericDefault); e.Graphics.DrawString(keyWord, this.Font, fontColor, keyRect, StringFormat.GenericDefault); //提交事务 e.Handled = true; } } }定义该重绘控件的字体,前景色和背景图片
#region properties /// <summary> /// 获取或设置该控件下显示字体的大小. /// </summary> [Browsable(true)] [DefaultValue(typeof(Font), "宋体,9"), Description("获取或设置该控件下显示字体的大小.")] public override Font Font { get { return this._font; } set { this._font = value; } } /// <summary> /// 获取或设置当前字体颜色. /// </summary> [Description("获取或设置当前字体颜色.")] public Color FontColor { get { return this._fontColor; } set { this._fontColor = value; } } /// <summary> /// 获取或设置当前控件的背景图片. /// </summary> [DefaultValue(typeof(Image), ""), Description("获取或设置当前控件的背景图片.")] public Image BackImage { get { return this._backImage; } set { this._backImage = value; } } #endregion
以上代码仅供参考
- DataGridView重绘单元格中某些字体颜色,大小
- DataGridView重绘单元格中某些字体颜色,大小
- DataGridView中按单元格填充内容,字体颜色,背景色
- datagridview单元格重绘
- DataGridView 中单元格显示不一样颜色方法
- vb.net DataGridView 改变某个单元格字体的颜色
- datagridview单元格颜色赋值
- DataGridView填充单元格颜色
- DataGridView 单元格中内容为链接,字体为蓝色
- MFC修改按钮中字体颜色大小
- 修改UIWebView中字体的大小,颜色
- 改变textField的占位符字体的大小和颜色(重绘)
- dataGridView获取当前行ID值和设置单元格内字体颜色
- datagridview横向纵向合并单元格,重绘实现
- 改变DataGrid单元格字体颜色
- Markdown字体颜色、大小
- devexpress实现单元格根据条件显示不同的样式(颜色、字体、对齐方式,大小等)
- C#DataGridView单元格Header背景颜色设置
- 魔方小站 2阶 4阶 5阶
- 二叉查询树的保存和读取(Serialization/Deserialization)
- axis1.x and 2.x differences
- DOM中被点击的按钮和没有每点击的按钮显示不同文字
- DevExpress中GridControl实现主从表绑定数据
- DataGridView重绘单元格中某些字体颜色,大小
- DevExpress控件ChartControl制作饼图
- 标准模板库介绍
- 注册页面时倒计时多少秒以后同意按钮可用
- 靠
- 办公室中的违规行为
- [转:IBM]编写安全PHP应用程序的七个习惯
- 让你不再恐惧--轻松接触 PHP
- 学习PHP必备的函数集