Ich habe eine benutzerdefinierte ComboBox
Kontrolle, die ich in einem DataGridViewCell
verwenden möchte. Ich erbte zuerst DataGridViewCell
und versuche, die Paint()
Methode zu überschreiben, um die ComboBox
in der Zelle zu malen.Wie kann ich eine benutzerdefinierte ComboBox in einer DataGridViewCell zeichnen?
Mein Problem ist, dass nach der Vererbung DataGridViewColumn
und Festlegen der CellTemplate
Eigenschaft auf eine neue Instanz meiner CustomDataGridViewCell
Klasse, die Zelle ist grau mit keinen Inhalten.
Die Klassenvariable cBox
wird im Objekt ctor instanziiert.
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();
}
Wie kann ich die ComboBox
in der Zelle richtig malen?
Hi.Could Sie das schaffen, Dateien, um eine CheckedCombBox in DataGridView zu haben? – San