Winforms DataGridViewComboxCell背面颜色更改

Winforms DataGridViewComboxCell背面颜色更改,winforms,datagridview,Winforms,Datagridview,DataGridViewComboxCell在应用程序启动时显示正常 选择该值后,当前行和后续行的背景将变为黑色(见下文)。我使用了默认的DataGridView,没有字体操作 我尝试过在CellFormatting和CellMouseClick事件中更改颜色。但还是一样的行为。有什么想法吗?显然,这是DataGridViewComboBoxColumn记录的错误 C#:DataGridViewComboBoxColumn下拉菜单显示全黑色 2010年12月20日-尼克·奥尔森 今天我在使

DataGridViewComboxCell在应用程序启动时显示正常

选择该值后,当前行和后续行的背景将变为黑色(见下文)。我使用了默认的DataGridView,没有字体操作


我尝试过在CellFormatting和CellMouseClick事件中更改颜色。但还是一样的行为。有什么想法吗?

显然,这是DataGridViewComboBoxColumn记录的错误

C#:DataGridViewComboBoxColumn下拉菜单显示全黑色 2010年12月20日-尼克·奥尔森

今天我在使用DataGridView时遇到了一个问题,其中一列定义为DataGridViewComboBoxColumn,下拉菜单完全为黑色,如下所示

经过一些研究,我发现DataGridViewComboxColumn列中有一个记录在案的错误,如果您处理DataGridView的EditingControlShowing事件,有时会发生这种情况。我处理此事件是为了连接DataGridView单元格中嵌入的ComboBox的SelectedIndexChanged事件

在bug报告中,微软表示他们不会修复这个bug,但谢天谢地,Debanjan1已经发布了解决这个问题的方法。如果在EditingControlShowing事件中简单地将CellStyle.BackColor属性设置为DataGridView.DefaultCellStyle.BackColor,问题就会消失。如下所示

私有void dataGridViewGLEntries\u EditingControlShowing(对象发送方,DataGridViewEditingControlShowingEventArgs e) { 组合框cmbBx=e。控件作为组合框

if (cmbBx != null)
{
    cmbBx.SelectedIndexChanged -= ComboBoxCell_SelectedIndexChanged;
    cmbBx.SelectedIndexChanged += ComboBoxCell_SelectedIndexChanged;

    // Fix the black background on the drop down menu
    e.CellStyle.BackColor = this.dataGridViewGLEntries.DefaultCellStyle.BackColor;
}

}

查找此项并发布解决方案链接的工作做得很好。与网络上的其他资源不同,链接中发布的解决方案是有效的。您应该将解决方案从博客复制到这个答案本身,以防博客条目不知何故被比特桶吃掉。