Dibujo personalizado de DatagridViewComboBoxColumn
Estoy usando unaDataGridView
con unDataGridViewComboBoxColumn
y necesito agregar iconos a la izquierda de los elementos del cuadro combinado. Actualmente estoy usandoEditingControlShowing
evento junto conComboBox.DrawItem
evento, así:
private void pFiles_dgvFiles_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (e.Control is ComboBox)
{
ComboBox cb = (ComboBox)e.Control;
cb.DrawMode = DrawMode.OwnerDrawFixed;
cb.DrawItem -= combobox1_DrawItem;
cb.DrawItem += combobox1_DrawItem;
}
}
private void combobox1_DrawItem(object sender, DrawItemEventArgs e)
{
// Drawing icon here
}
El problema es que los iconos solo se dibujan mientras la celda esté en modo de edición. Tan pronto como hago clic en algún lugar fuera de la celda, laCellEndEdit
l evento @ se dispara y la celda se vuelve a pintar (sin el icono).
Intenté usar elDataGridView.CellPainting
evento para resolver este problema, pero hace que el botón desplegable deDataGridViewComboBoxColumn
desaparecer
¿Alguna idea sobre cómo dibujar un icono después de que el usuario haya terminado de editar la celda?