DGV表头双行
try
{
if (e.RowIndex < 0)
{
RectangleF _rect = e.CellBounds;
Pen _pen = new Pen(Color.Black);
Pen _pen1 = new Pen(Color.Gray);
LinearGradientBrush backBrush = new LinearGradientBrush(_rect, e.CellStyle.BackColor, e.CellStyle.BackColor, 90);
int _col = e.ColumnIndex;
switch (_col)
{
case 0:
e.Graphics.FillRectangle(backBrush, _rect);
e.Graphics.DrawLine(_pen, _rect.Right - 1, _rect.Top, _rect.Right - 1, _rect.Bottom);
e.Graphics.DrawLine(_pen, _rect.Left, _rect.Top, _rect.Left, _rect.Bottom);
break;
//case 1:
//case 2:
//case 10:
//case 11:
//case 12:
//case 13:
case 14:
e.Graphics.FillRectangle(backBrush, _rect);
e.Graphics.DrawLine(_pen, _rect.Right - 1, _rect.Top, _rect.Right - 1, _rect.Bottom);
break;
case 1:
//e.Graphics.FillRectangle(backBrush, _rect);
break;
case 2:
case 4:
case 6:
case 8:
case 10:
case 12:
e.Graphics.FillRectangle(backBrush, new Rectangle(Convert.ToInt32(_rect.X), Convert.ToInt32(_rect.Y), 200, Convert.ToInt32(_rect.Height)));
//画左竖线
e.Graphics.DrawLine(_pen1, _rect.Left - 1, _rect.Top, _rect.Left - 1, _rect.Bottom - 1);
//画中横线
e.Graphics.DrawLine(_pen1, _rect.Left, _rect.Top + (_rect.Height / 2), _rect.Right - 1, _rect.Top + (_rect.Height / 2));
//画右竖线
e.Graphics.DrawLine(_pen1, _rect.Right - 1, _rect.Top + (_rect.Height / 2) + 1, _rect.Right - 1, _rect.Bottom);
break;
case 3:
case 5:
case 7:
case 9:
case 11:
e.Graphics.FillRectangle(backBrush, new Rectangle(Convert.ToInt32(_rect.X), Convert.ToInt32(_rect.Y), Convert.ToInt32(_rect.Width) * 2, Convert.ToInt32(_rect.Height)));
//画中横线
e.Graphics.DrawLine(_pen1, _rect.Left, _rect.Top + (_rect.Height / 2), _rect.Right - 1, _rect.Top + (_rect.Height / 2));
break;
case 13:
e.Graphics.FillRectangle(backBrush, new Rectangle(Convert.ToInt32(_rect.X), Convert.ToInt32(_rect.Y), Convert.ToInt32(_rect.Width) * 2, Convert.ToInt32(_rect.Height)));
//画中横线
e.Graphics.DrawLine(_pen1, _rect.Left, _rect.Top + (_rect.Height / 2), _rect.Right - 1, _rect.Top + (_rect.Height / 2));
//画右竖线
e.Graphics.DrawLine(_pen, _rect.Right - 1, _rect.Top + 1, _rect.Right - 1, _rect.Bottom);
break;
}
e.Graphics.DrawLine(_pen, _rect.Left, _rect.Top, _rect.Right - 1, _rect.Top);
e.Graphics.DrawLine(_pen, _rect.Left, _rect.Bottom - 1, _rect.Right, _rect.Bottom - 1);
if (e.Value != null)
{
StringFormat _Format = new StringFormat();
switch (e.CellStyle.Alignment)
{
case DataGridViewContentAlignment.BottomCenter:
_Format.LineAlignment = StringAlignment.Far;
_Format.Alignment = StringAlignment.Center;
break;
case DataGridViewContentAlignment.BottomLeft:
_Format.LineAlignment = StringAlignment.Far;
_Format.Alignment = StringAlignment.Near;
break;
case DataGridViewContentAlignment.BottomRight:
_Format.LineAlignment = StringAlignment.Far;
_Format.Alignment = StringAlignment.Far;
break;
case DataGridViewContentAlignment.MiddleCenter:
_Format.LineAlignment = StringAlignment.Center;
_Format.Alignment = StringAlignment.Center;
break;
case DataGridViewContentAlignment.MiddleLeft:
_Format.LineAlignment = StringAlignment.Center;
_Format.Alignment = StringAlignment.Near;
break;
case DataGridViewContentAlignment.MiddleRight:
_Format.LineAlignment = StringAlignment.Center;
_Format.Alignment = StringAlignment.Far;
break;
case DataGridViewContentAlignment.NotSet:
_Format.LineAlignment = StringAlignment.Center;
_Format.Alignment = StringAlignment.Near;
break;
case DataGridViewContentAlignment.TopCenter:
_Format.LineAlignment = StringAlignment.Near;
_Format.Alignment = StringAlignment.Center;
break;
case DataGridViewContentAlignment.TopLeft:
_Format.LineAlignment = StringAlignment.Near;
_Format.Alignment = StringAlignment.Near;
break;
case DataGridViewContentAlignment.TopRight:
_Format.LineAlignment = StringAlignment.Near;
_Format.Alignment = StringAlignment.Far;
break;
}
Brush _br;
String _text = e.Value.ToString();
switch (_col)
{
case 2:
case 4:
case 6:
case 8:
case 10:
case 12:
_br = new SolidBrush(e.CellStyle.ForeColor);
e.Graphics.DrawString(_text, e.CellStyle.Font, _br, new RectangleF(_rect.X, _rect.Y + 1 + _rect.Height / 2, _rect.Width, _rect.Height / 2), _Format);
_Format.LineAlignment = StringAlignment.Center;
_Format.Alignment = StringAlignment.Center;
_br = new SolidBrush(e.CellStyle.ForeColor);
e.Graphics.DrawString(_text, e.CellStyle.Font, _br, new RectangleF(_rect.X, _rect.Y, _rect.Width * 3, _rect.Height / 2), _Format);
break;
case 3:
case 5:
case 7:
case 9:
case 11:
case 13:
_br = new SolidBrush(e.CellStyle.ForeColor);
e.Graphics.DrawString(_text, e.CellStyle.Font, _br, new RectangleF(_rect.X, _rect.Y + 1 + _rect.Height / 2, _rect.Width, _rect.Height / 2), _Format);
//写上面
if (_col == 3)
{
_text = "第一个";
}
if (_col == 5)
{
_text = "第二个";
}
else if (_col == 7)
{
_text = "第三个";
}
else if (_col == 9)
{
_text = "第四个";
}
else if (_col == 11)
{
_text = "第五个";
}
else if (_col == 13)
{
_text = "第六个";
}
_Format.LineAlignment = StringAlignment.Center;
_Format.Alignment = StringAlignment.Center;
_br = new SolidBrush(e.CellStyle.ForeColor);
e.Graphics.DrawString(_text, e.CellStyle.Font, _br, new RectangleF(_rect.X - _rect.Width - 20, _rect.Y, _rect.Width * 3, _rect.Height / 2), _Format);
break;
default:
_br = new SolidBrush(e.CellStyle.ForeColor);
e.Graphics.DrawString(_text, e.CellStyle.Font, _br, _rect, _Format);
break;
}
}
e.Handled = true;
}
}
catch (Exception ex)
{
LogHelper.WriteLog(GetType(),ex);
}
DGV表头双行的更多相关文章
- table 控制单双行颜色以及鼠标hover颜色 table光棒
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- repeater单双行颜色不同,gridview repeater DataList 鼠标经过改变背景颜色
1.gridview 双击GridView的OnRowDataBound事件: 在后台的GridView1_RowDataBound()方法添加代码,最后代码如下所示: protected void ...
- html table单双行颜色间隔(转载)
直接上代码: <html> <head> <meta http-equiv="Content-Type" content="text/htm ...
- 对FineU框架Grid多表头合计行导出Excel的回顾
年前用FineUI开发遇到了这样一个问题,Grid多表头合计行不能导出,后面到官方示例找了一下,庆幸的是找到了多表头的导出示例.然后当时为了省事,直接就复制粘贴完事,也没有仔细的研究代码.后来运行一看 ...
- css单双行样式
#random_box li:nth-child(odd) {//双行 background: #fff5c4; } #random_box li:nth-child(even) {//单行 back ...
- 问题:CListCtrl如何高亮选中一行 http://zhidao.baidu.com/question/100664911.html 扩展:单行、双行及完成状态的字体等等。。。
http://zhidao.baidu.com/link?url=BKp05mfOdKbEBh21svQelpVhYjzDkIpYUZay8_3ZLSndTQn5kK0eTwQG8jBvYnwh8US ...
- Js实现table单双行交替色
依稀记得,当初我刚学编程的时候还学过怎么实现表格单双行交替色,现如今早已记不清当时的实现思路,这两天突然想起,没事就自己写了一小段代码,也不知道是否是当年的思路,不过不用纠结这个问题.:) 代码很简单 ...
- 奇偶选择器:使用odd和even属性实现表格单双行颜色相间和不同
一.奇偶选择器 表格在呈现数据的时候我们为了方便观看,而隔行显示不同的颜色,虽然可以用用类选择器 class实现这种效果,但是未免太过麻烦,为了更加简便地表现这种特殊的效果我们需要用到一种特殊的选择器 ...
- SQLServer导出查询结果带表头(标题行)
SQLServer导出查询结果带表头(标题行) 平时我们经常会需要将SQLSERVER查询的结果复制到EXCEL文档中进行分析处理,但是有一件事很头痛,就是复制结果网格的数据到EXCEL之后,都是没有 ...
随机推荐
- AJAX怎么用POST 传参数
//注册回调函数.注意注册回调函数是不能加括号,加了会把函数的值返回给onreadystatechange xmlhttp.onreadystatechange = callback; //设置连接信 ...
- WindowsForm--Bubble User Control
创建一个自定义用户控件,拖入一个label:lblWords,和一个richTextBox:txtWords 代码: using System; using System.Collections.Ge ...
- sql事务的调用
一.数据库的SQL USE [Text]GO/****** Object: StoredProcedure [dbo].[mon] Script Date: 2017-01-03 15:59:28 * ...
- SQL判断某列中是否包含中文字符、英文字符、纯数字 (转)
一.包含中文字符 select * from 表名 where 列名 like '%[吖-座]%' 二.包含英文字符 select * from 表名 where 列名 like '%[a-z]%' ...
- sublime text 3 license 2016.05
补充:2016.05 最近经过测试,3个注册码在新版3103的sublime上已经不可用了. 现补充两枚新版的license key: -– BEGIN LICENSE -– Michael Barn ...
- [hihoCoder1329] 带Split和Merge的Treap
题目链接:http://hihocoder.com/problemset/problem/1329 这题本来是学Splay的题,但是我为了练习Treap的Split和Merge操作,就借来用一用. 就 ...
- the import javax.servlet
问题: 在eclipse中编写servlet时出现“the import javax.servlet unresolved” 问题原因: 缺少servlet-api.jar架包. 问题解决办法: 在e ...
- upgrade to ubuntu14.04, ibus input
升级后ibus拼音输入很奇怪,可能和其他输入法产生混淆.解决很简单,只要打开终端输入 ibus-daemon -drx 不用重启或者登出问题便解决.
- Angualr2 - 使用 VS2015
使用 Vs 2015 快速上手 Angular2 许多程序员希望能够使用 VS2015 作为 IDE 来开发 Angular 2 应用,这里介绍如何设置 VS2015,使用快速上手文件来搭建 ASP. ...
- 再见OI
NOIP2016终章 自己弱还脑残加手残 再见OI 你好高考 你好明天 "没有泪水的日子会轻松很多 但我的心还是会痛" ------------------------------ ...