//GridView显示行号
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
ShowLineNo(sender, e);
}
public void ShowLineNo(object sender, DataGridViewRowPostPaintEventArgs e)
{
var dgv = sender as DataGridView;
if (dgv == null) return;
try
{
var lineNo = (e.RowIndex + 1).ToString();
var rectangle = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dgv.RowHeadersWidth - 3, e.RowBounds.Height);
//TextRenderer.DrawText(e.Graphics, lineNum, dgv.RowHeadersDefaultCellStyle.Font, rectangle, dgv.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
using (var brush = new SolidBrush(dgv.RowHeadersDefaultCellStyle.ForeColor))
{
var format = new StringFormat { LineAlignment = StringAlignment.Center, Alignment = StringAlignment.Far };
e.Graphics.DrawString(lineNo, dgv.RowHeadersDefaultCellStyle.Font, brush, rectangle, format);
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
本文介绍了一个简单的.NET应用程序功能,即如何在DataGridView控件中自定义显示行号的方法。通过覆盖DataGridView的RowPostPaint事件,使用Graphics对象绘制指定格式的行号,确保其垂直居中并靠右对齐。
1808

被折叠的 条评论
为什么被折叠?



