DataGridView的列标题中行标题怎么添加文本和行标题中的序号居中
DataGridView的列标题中行标题如何添加文本和行标题中的序号居中
datagridview中把RowHeaderVisual属性设置为true后,控件的最前面就添加了行标题的列,关于行标题列现有两个问题。
第1、行标题对应的列中的标题文本如何设置,我想把它设置为序号,我们知道,如果是自己添加的列,设置headertext属性就可以了
第2、行标题中显示的序号如何设置居中?我已通过事件添加了序号。如下:
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
var dgv = sender as DataGridView;
if (dgv != null)
{
Rectangle rect = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dgv.RowHeadersWidth - 4, e.RowBounds.Height);
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dgv.RowHeadersDefaultCellStyle.Font, rect, dgv.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}
}
------解决方案--------------------
cellformating事件中可以设置 e.CellStyle,其中有对齐等
datagridview中把RowHeaderVisual属性设置为true后,控件的最前面就添加了行标题的列,关于行标题列现有两个问题。
第1、行标题对应的列中的标题文本如何设置,我想把它设置为序号,我们知道,如果是自己添加的列,设置headertext属性就可以了
第2、行标题中显示的序号如何设置居中?我已通过事件添加了序号。如下:
private void dataGridView1_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
var dgv = sender as DataGridView;
if (dgv != null)
{
Rectangle rect = new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, dgv.RowHeadersWidth - 4, e.RowBounds.Height);
TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), dgv.RowHeadersDefaultCellStyle.Font, rect, dgv.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right);
}
}
------解决方案--------------------
cellformating事件中可以设置 e.CellStyle,其中有对齐等