我正在使用 a DataGridView
,DataGridViewComboBoxColumn
我需要在组合框项目的左侧添加图标。我目前正在使用EditingControlShowing
事件和ComboBox.DrawItem
事件,如下所示:
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
}
问题是只有在单元格处于编辑模式时才会绘制图标。只要我单击单元格外部的某个位置,CellEndEdit
就会触发事件并且重新绘制单元格(没有图标)。
我尝试使用该DataGridView.CellPainting
事件来解决此问题,但它会导致下拉按钮DataGridViewComboBoxColumn
消失。
在用户完成编辑单元格后如何绘制图标的任何想法?