我在 Visual Studio 2010 中使用 C#。我有一个绑定到数据源的 DataGridViewComboBoxColumn。我想从组合框中进行选择时,整行都可以改变颜色。我不确定如何执行此操作,因为组合框没有自己单独的名称,它们都属于 cbColumn1。我在这里使用了这篇文章,但不确定如何使代码正常工作。当 DataGridViewComboBox 的选定索引发生更改时,如何立即更改行颜色?
任何帮助将不胜感激
我在 Visual Studio 2010 中使用 C#。我有一个绑定到数据源的 DataGridViewComboBoxColumn。我想从组合框中进行选择时,整行都可以改变颜色。我不确定如何执行此操作,因为组合框没有自己单独的名称,它们都属于 cbColumn1。我在这里使用了这篇文章,但不确定如何使代码正常工作。当 DataGridViewComboBox 的选定索引发生更改时,如何立即更改行颜色?
任何帮助将不胜感激
像这样的东西应该可以工作......你可能需要稍微调整一下,因为我在我自己的程序上对其进行了测试,该程序的设置可能完全不同。
DataGridViewComboBoxColumn column = new DataGridViewComboBoxColumn();
column.Items.Add("0");
column.Items.Add("1");
column.Items.Add("2");
dataGridView1.Columns.Add(column);
private void dataGridView1_EditingControlShowing(object sender, DataGridViewEditingControlShowingEventArgs e)
{
if (dataGridView1.CurrentCell.ColumnIndex == 1)
{
ComboBox comboBox = e.Control as ComboBox;
comboBox.DropDownStyle = ComboBoxStyle.DropDown;
comboBox.SelectedIndexChanged += comboBox_SelectedIndexChanged;
}
}
void comboBox_SelectedIndexChanged(object sender, EventArgs e)
{
int selectedIndex = ((ComboBox)sender).SelectedIndex;
DataGridViewCellStyle style = new DataGridViewCellStyle();
if (selectedIndex == 0)
{
style.BackColor = Color.AliceBlue;
}
if (selectedIndex == 1)
{
style.BackColor = Color.Beige;
}
if (selectedIndex == 2)
{
style.BackColor = Color.Crimson;
}
dataGridView1.CurrentCell.OwningRow.DefaultCellStyle = style;
dataGridView1.Refresh();
}