3

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

在此处输入图像描述

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

在此处输入图像描述

我尝试在 CellFormatting 和 CellMouseClick 事件中更改颜色。但仍然是相同的行为。有任何想法吗?

4

2 回答 2

4

显然,这是使用 DataGridViewComboBoxColumn 记录的错误。链接到解决方案和解决方法

于 2012-11-29T02:42:22.997 回答
0

https://nickstips.wordpress.com/2010/12/20/c-datagridviewcomboboxcolumn-drop-down-menu-appears-all-black/

C#:DataGridViewComboBoxColumn 下拉菜单全部显示为黑色 2010 年 12 月 20 日 — Nick Olsen

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

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

在错误报告中,微软表示他们不会修复此错误,但幸运的是,Debanjan1 已针对此问题发布了解决方法。如果您只是在 EditingControlShowing 事件中将 CellStyle.BackColor 属性设置为 DataGridView.DefaultCellStyle.BackColor,问题就会消失。这如下所示。

private void dataGridViewGLEntries_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e) { ComboBox cmbBx = e.Control as ComboBox;

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;
}

}

于 2021-02-08T21:20:00.803 回答