У меня есть пользовательский контроль ComboBox
, который я хочу использовать в DataGridViewCell
. Я сначала унаследовал DataGridViewCell
и пытаюсь переопределить метод Paint()
для рисования ComboBox
в ячейке.Как я могу создать пользовательский ComboBox внутри DataGridViewCell?
Моя проблема в том, что после наследования DataGridViewColumn
и установки свойства CellTemplate
в новый экземпляр моего класса CustomDataGridViewCell
, ячейка серая без содержимого.
В объекте ctor создается экземпляр переменной cBox
.
protected override void Paint(Graphics graphics, Rectangle clipBounds,
Rectangle cellBounds, int rowIndex, DataGridViewElementStates cellState,
object value, object formattedValue, string errorText,
DataGridViewCellStyle cellStyle, DataGridViewAdvancedBorderStyle borderStyle,
DataGridViewPaintParts paintParts)
{
// Call MyBase.Paint() without passing object for formattedValue param
base.Paint(graphics, clipBounds, cellBounds, rowIndex, cellState, value,
"", errorText, cellStyle, borderStyle, paintParts);
// Set ComboBox properties
this.cBox.CheckOnClick = true;
this.cBox.DrawMode = System.Windows.Forms.DrawMode.Normal;
this.cBox.DropDownHeight = 1;
this.cBox.IntegralHeight = false;
this.cBox.Location = new System.Drawing.Point(cellBounds.X, cellBounds.Y);
this.cBox.Size = new System.Drawing.Size(cellBounds.Width, cellBounds.Height);
this.cBox.ValueSeparator = ", ";
this.cBox.Visible = true;
this.cBox.Show();
}
Как правильно красить ComboBox
в клетке?
Hi.Could вы предоставить файлов, чтобы иметь CheckedCombBox внутри DataGridView? – San