[ToolboxBitmap(typeof(DataGridView))]
public partial class dgvHasRowNum : DataGridView
{
public dgvHasRowNum()
{
InitializeComponent();
this.RowPostPaint += new DataGridViewRowPostPaintEventHandler(dgvHasRowNum_RowPostPaint);
}
void dgvHasRowNum_RowPostPaint(object sender, DataGridViewRowPostPaintEventArgs e)
{
DataGridView dgv = (DataGridView)sender;
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);
}
/// <summary>
/// 重写DataSource属性,让它在改变之前保存好列序,然后重新
/// </summary>
public object DataSourceNew
{
get
{
return this.DataSource;
}
set
{
bakupColumnDisplayIndex();
this.DataSource = value;
resortColumnDisplayIndex();
}
}
private void bakupColumnDisplayIndex()
{
this._displayIndex.Clear();
foreach (DataGridViewColumn dc in this.Columns)
{
this._displayIndex.Add(dc.Name, dc.DisplayIndex);
}
}
private void resortColumnDisplayIndex()
{
for (int i = 0; i < this.Columns.Count; i++)
{
this.Columns[i].DisplayIndex = (int)_displayIndex[this.Columns[i].Name];
}
}
private Hashtable _displayIndex = new Hashtable();
}
发表于 @ 2008年06月29日 17:43:00 | 评论( loading... ) | 举报| 收藏