Tag: custom draw

自定义绘制DatagridViewComboBoxColumn

我正在使用带有DataGridView的DataGridViewComboBoxColumn ,我需要在combobox项目的左侧添加图标。 我目前正在使用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某个地方,就会触发CellEndEdit事件并重新绘制单元格(没有图标)。 我尝试使用DataGridView.CellPainting事件来解决此问题,但它导致DataGridViewComboBoxColumn的下拉按钮消失。 在用户完成编辑单元格后如何绘制图标的任何想法?