我可以easily paint items in DataGridViewComboBox dropdown list .但我无法弄清楚如何在同一列中绘制非事件单元格。
我看过、研究过并尝试过许多经典的例子 ComboBox ,但我不了解DataGridViewComboBox的所有方面.
目前我有从 DataGridViewComboBox 派生的 DataGridViewCustomPaintComboBox 类。提供的最小覆盖集是多少?你能给我指出正确的方向吗?
最佳答案
在没有焦点的情况下绘制非事件单元格所需的最小值似乎是CellTemplate
赋值和Paint()
覆盖:
public class DataGridViewCustomPaintComboBox : DataGridViewComboBoxColumn
{
public DataGridViewCustomPaintComboBox()
{
base.New();
CellTemplate = new DataGridViewCustomPaintComboBoxCell();
}
}
public class DataGridViewCustomPaintComboBoxCell : DataGridViewComboBoxCell
{
protected override void Paint(Graphics graphics, Rectangle clipBounds, Rectangle cellBounds, int rowIndex, DataGridViewElementStates elementState, object value, object formattedValue, string errorText, DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle advancedBorderStyle, DataGridViewPaintParts paintParts)
{
// modify received arguments here
base.Paint(...); // paint default parts (see paintParts argument)
// add any custom painting here
}
}
关于c# - 如何绘制 DataGridViewComboBox 列中的非事件行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31452931/