0

我在 Visual Studio 2010 中使用 C#。我有一个绑定到数据源的 DataGridViewComboBoxColumn。我想从组合框中进行选择时,整行都可以改变颜色。我不确定如何执行此操作,因为组合框没有自己单独的名称,它们都属于 cbColumn1。我在这里使用了这篇文章,但不确定如何使代码正常工作。当 DataGridViewComboBox 的选定索引发生更改时,如何立即更改行颜色?

任何帮助将不胜感激

4

1 回答 1

0

像这样的东西应该可以工作......你可能需要稍微调整一下,因为我在我自己的程序上对其进行了测试,该程序的设置可能完全不同。

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();
    }
于 2013-07-26T19:14:35.697 回答