标签:System AGING RowIndex 单元格 DETAIL 指定 获取 DataGridView
DataGridView是winfrom一个很强大的控件,但是有些时候这个控件外观需要自己动手重绘。接下是个人在项目中遇到到一些问题。
1.不管是给单元格添加序号也好,还是给指定单元格加文本,其实都是重绘某个单元格。
我个人比较喜欢在表单绘画的时候触发他自己的机制去重绘。RowPostPaint。
直接这个事件里面开始代码。
private void dgv1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)///dgv1_RowPostPaint事件的名称
{
StringFormat StringFormat = new StringFormat() { LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Center };///这里设置居中样式
System.Drawing.Rectangle rectangle = new System.Drawing.Rectangle(e.RowBounds.Location.X,
e.RowBounds.Location.Y, AGING_DETAIL.RowHeadersWidth -4, e.RowBounds.Height);//这里是要获取表头的单元格起始位置,高度宽度,为重绘序列准备。里面的参数下面有图解释
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(),
AGING_DETAIL.RowHeadersDefaultCellStyle.Font, rectangle, AGING_DETAIL.RowHeadersDefaultCellStyle.ForeColor,
TextFormatFlags.VerticalCenter | TextFormatFlags.Right);///这里是重新绘制行级的某个单元
Y = this.AGING_DETAIL.GetCellDisplayRectangle(4, e.RowIndex, false).Y;///这里是获取当前行的第4列Y坐标
X = this.AGING_DETAIL.GetCellDisplayRectangle(4, e.RowIndex, false).X;///这里是获取当前行的第4列X坐标
W = this.AGING_DETAIL.GetCellDisplayRectangle(4, e.RowIndex, false).Width;///这里是获取当前行的宽度
H = this.AGING_DETAIL.GetCellDisplayRectangle(4, e.RowIndex, false).Height;///这里是获取当前行的高度度
System.Drawing.Rectangle rectangle1 = new System.Drawing.Rectangle(X,Y,
W, H);
e.Graphics.DrawString(AGING_DETAIL.Rows[e.RowIndex].Cells[4].Value.ToString()+"%",
AGING_DETAIL.RowHeadersDefaultCellStyle.Font, new SolidBrush(AGING_DETAIL.RowHeadersDefaultCellStyle.ForeColor), rectangle1, StringFormat);///这里是为我们刚刚获取的单元范围内绘制文本,上面的序列也可以用这个方法。个人比较喜欢这个。
}
///一下对上面一下参数图解一下
~~~
~~~~
----------------------------------------------------------------------------------小尾巴分割------------------------------------------------------------------------
菜鸟的记录也是进步~如果对你有所帮助,那就小小的赞一下吧。-----来自没有代码的程序员小萝卜
标签:System,AGING,RowIndex,单元格,DETAIL,指定,获取,DataGridView 来源: https://blog.csdn.net/weixin_38801976/article/details/104854418
本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享; 2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关; 3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关; 4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除; 5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。