C# 当DataGridViewComboBoxCell有焦点时,如何突出显示它?
我有一个带有C# 当DataGridViewComboBoxCell有焦点时,如何突出显示它?,c#,datagridview,combobox,selection-color,C#,Datagridview,Combobox,Selection Color,我有一个带有datagridviewcomboxcolumn的DataGridView。当我浏览任何单元格时,它们都会高亮显示。我的问题是,当我浏览ComboBoxColumn单元格时,它们不会突出显示。这是我创建列的代码 DataGridViewCellStyle GridStyleCombo = new DataGridViewCellStyle(); DataGridViewCell cell2 = new DataGridViewComboBoxCell(
datagridviewcomboxcolumn
的DataGridView
。当我浏览任何单元格时,它们都会高亮显示。我的问题是,当我浏览ComboBoxColumn
单元格时,它们不会突出显示。这是我创建列的代码
DataGridViewCellStyle GridStyleCombo = new DataGridViewCellStyle();
DataGridViewCell cell2 = new DataGridViewComboBoxCell();
DataGridViewComboBoxColumn col1 = new DataGridViewComboBoxColumn()
{
CellTemplate = cell2,
Name = "boundProfile",
HeaderText = "Promotion Bound Profile",
DataPropertyName = "BoundProfile",
DataSource = new BindingSource(DA.GetProfiles(), null),
FillWeight = 10,
AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill,
SortMode = DataGridViewColumnSortMode.Automatic,
DefaultCellStyle = GridStyleCombo,
DisplayMember = "Key",
ValueMember = "Value"
};
有没有办法突出显示这些单元格?我已经尝试过更改
DataGridViewCell
或DataGridViewCellStyle的选择颜色,我也遇到了同样的问题
我发现,如果我将网格的EditMode
属性设置为editonener
,则当我输入单元格时,组合框单元格会高亮显示
它还解决了在出现组合框下拉列表之前必须在单元格上单击两到三次的问题
此解决方案的唯一问题是,当EditMode
属性设置为editonener
,并通过单击行标题选择一行时,将选择整行,但只有一个单元格处于编辑模式。这会导致以下情况:如果您试图通过选择行标题来删除行,则无法删除行,因为删除键实际上是发送到正在编辑的单元格,而不是发送到行。我从来都不喜欢使用行标题
,因此该问题实际上不是问题。非常感谢您的建议,刚刚测试了它,效果非常好,尽管我确实在datagrid cellclick事件中解决了它,如果(datagrid.Columns[e.ColumnIndex]是datagridviewcomboxcolumn&&validRow){datagrid.BeginEdit(true);((ComboBox)dataGrid.EditingControl).DroppedDown=true;}