// 允许增加一个 checkbox 列 
public class DgvBase : DataGridViewX { protected override void OnColumnAdded(DataGridViewColumnEventArgs e) { base.OnColumnAdded(e); //if (e.Column.ValueType == typeof(int) || e.Column.ValueType == typeof(long) || e.Column.ValueType == typeof(float) // || e.Column.ValueType == typeof(double) || e.Column.ValueType == typeof(decimal)) if (e.Column.ValueType == typeof(decimal)) e.Column.DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleRight; } protected override void OnRowPostPaint(DataGridViewRowPostPaintEventArgs e) { base.OnRowPostPaint(e); //this.Rows[e.RowIndex].Selected ? this.RowHeadersDefaultCellStyle.SelectionForeColor : TextRenderer.DrawText(e.Graphics, (e.RowIndex + 1).ToString(), this.RowHeadersDefaultCellStyle.Font, new Rectangle(e.RowBounds.Location.X, e.RowBounds.Location.Y, this.RowHeadersWidth - 4, e.RowBounds.Height), this.RowHeadersDefaultCellStyle.ForeColor, TextFormatFlags.VerticalCenter | TextFormatFlags.Right); } protected override void OnCellClick(DataGridViewCellEventArgs e) { base.OnCellClick(e); // 设置此列在点击时可改变值 DataGridViewColumn dc = this.Columns [e.ColumnIndex ]; if (dc.ReadOnly && dc.Name == "IsSelected") this[e.ColumnIndex, e.RowIndex].Value = !Generic.ToBoolean(this[e.ColumnIndex, e.RowIndex].Value); } } public static class DgvExtensions { public static void DataBind(this DgvBase dgv, DataTable dt) { if (dt != null && !dt.Columns.Contains("IsSelected")) { DataColumn dc = dt.Columns.Add("IsSelected", typeof(bool)); dc.SetOrdinal(0); } dgv.DataSource = dt; } }

 

相关文章:

  • 2021-09-01
  • 2022-12-23
  • 2022-02-08
  • 2022-03-04
  • 2021-06-20
  • 2022-01-06
  • 2021-05-23
  • 2021-07-01
猜你喜欢
  • 2021-08-13
  • 2021-07-24
  • 2022-12-23
  • 2021-07-12
  • 2021-10-02
  • 2022-01-11
  • 2021-06-06
相关资源
相似解决方案