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之后,都是没有 ...
随机推荐
- My Demo Reels
Some elementary algorithms about discrete differential geometry http://www.cnblogs.com/yaoyansi/p/56 ...
- php中的gethostbyname函数有问题
在根据域名获取ip的批量执行中,gethostbyname有些域名得到的ip是不正确的,不知道是不是版本的bug. 解决办法是,使用执行命令的方式获取 echo exec("host dom ...
- 重载Python FTP_TLS 实现Implicit FTP Over TLS方式下载文件
对于Python2.7来说,内置的FTP_TLS类并不支持Implicit FTP Over TLS加密方式的FTP Server操作,为支持Implicit FTP Over TLS加密方式,必须重 ...
- Ehcache和Spring整合
Ehcache是使用Java编写的缓存框架,比较常用的是,整合在Hibernate和MyBatis这种关系型数据库持久框架. 不过现在用NoSQL也比较盛行,要应用Ehcache,整合起来就没法按照那 ...
- mfc 连连看3.2 修改器
内涵图 连连看3.2下载
- JS常用工具函数
/** * Created by gaojun-pd on 2016/10/27. */ var Util = { /** * 1.判断非空 * 2.获取字符串真实长度 汉字算两位 * 3.判断参数类 ...
- C++调用JAVA方法详解
C++调用JAVA方法详解 博客分类: 本文主要参考http://tech.ccidnet.com/art/1081/20050413/237901_1.html 上的文章. C++ ...
- xcode:关于Other Linker Flags
一.关于Other Linker Flags xcode中,在“Targets”选项下有Other Linker Flags选项,在这里可以填写xcode链接器的参数,如:-ObjC.-all_loa ...
- ASP.NET权限管理
ASP.NET Web Forms权限管理: 我要将一个文件夹只能让一个用户组访问怎么办? 可否在网站根目录下的web.config里这样设置: <location path="adm ...
- SQL Server 2012日志文件误删除数据库质疑后的相关恢复
alter database testdb set emergencyalter database testdb set single_userdbcc checkdb('testdb',REPAIR ...