先自定义一个类 继承DataGridViewTextBoxCell
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; using System.Drawing; namespace com.Threes.CustomControl { public class DataGridViewBooleanCell : DataGridViewTextBoxCell { protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts) { // Call the base class method to paint the default cell appearance. base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value, "", errorText, cellStyle, advancedBorderStyle, paintParts); if (value is Boolean) if ((bool)value == true) { graphics.DrawString("Y", cellStyle.Font, new SolidBrush(Color.Blue), cellBounds.X, cellBounds.Y); } else { graphics.DrawString("N", cellStyle.Font, new SolidBrush(Color.Red), cellBounds.X, cellBounds.Y); } else if (value is int) { int v = (int)value; if (v == 1) { graphics.DrawString("男", cellStyle.Font, new SolidBrush(Color.Blue), cellBounds.X, cellBounds.Y); } else if (v == 0) { graphics.DrawString("女", cellStyle.Font, new SolidBrush(Color.Red), cellBounds.X, cellBounds.Y); } else { graphics.DrawString("人妖", cellStyle.Font, new SolidBrush(Color.Green), cellBounds.X, cellBounds.Y); } } } } }
再自定义一个类 继承DataGridViewColumn
using System; using System.Collections.Generic; using System.Text; using System.Windows.Forms; namespace com.Threes.CustomControl { public class DataGridViewBooleanColumn : DataGridViewColumn { public DataGridViewBooleanColumn() { this.CellTemplate = new DataGridViewBooleanCell(); } } }