C#:winform DataGridview 自动调整列宽
Cursor.Current = Cursors.WaitCursor;
DataSet ds = bll.GetDcpfl(cm); // 获取数据
dgvDcpfl.DataSource = ds.Tables[0]; // 绑定数据
int widths = 0;
for (int i = 0; i < dgvDcpfl.Columns.Count; i++)
{
dgvDcpfl.AutoResizeColumn(i, DataGridViewAutoSizeColumnMode.AllCells); // 自动调整列宽
widths += dgvDcpfl.Columns[i].Width; // 计算调整列后单元列的宽度和
}
if (widths >= dgvDcpfl.Size.Width) // 如果调整列的宽度大于设定列宽
dgvDcpfl.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.DisplayedCells; // 调整列的模式 自动
else
dgvDcpfl.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill; // 如果小于 则填充
Cursor.Current = Cursors.Default;
在发生任何单元格绘制之后,执行行级绘制时引发的事件
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);
}
}