DataGridViewComboBoxCell 在应用程序启动时显示正常
选择值后,当前行和后续行的背景变为黑色(见下文)。我使用了默认的 DataGridView 并且没有进行字体操作
我尝试在 CellFormatting 和 CellMouseClick 事件中更改颜色。但仍然是相同的行为。有任何想法吗?
DataGridViewComboBoxCell 在应用程序启动时显示正常
选择值后,当前行和后续行的背景变为黑色(见下文)。我使用了默认的 DataGridView 并且没有进行字体操作
我尝试在 CellFormatting 和 CellMouseClick 事件中更改颜色。但仍然是相同的行为。有任何想法吗?
显然,这是使用 DataGridViewComboBoxColumn 记录的错误。链接到解决方案和解决方法
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;
}
}