C# DataGridView中的行未更改颜色

C# DataGridView中的行未更改颜色,c#,winforms,C#,Winforms,我只是想把红色作为特定列中值为4的行的背景色,但所有行的背景色都是白色,即使有值大于4的行。我还仔细阅读了代码,因此我知道代码实际上是执行代码来更改背景色的 我做错了什么 dataGridViewMain.DataSource = table; dataGridViewMain.Sort(dataGridViewMain.Columns["Days in the shop"], ListSortDirection.Descending); foreach (DataGridViewR

我只是想把红色作为特定列中值为4的行的背景色,但所有行的背景色都是白色,即使有值大于4的行。我还仔细阅读了代码,因此我知道代码实际上是执行代码来更改背景色的

我做错了什么

dataGridViewMain.DataSource = table;
dataGridViewMain.Sort(dataGridViewMain.Columns["Days in the shop"], ListSortDirection.Descending);
      foreach (DataGridViewRow row in this.dataGridViewMain.Rows)
      {
        if (Convert.ToInt32(row.Cells["Days in the shop"].Value) > 4)
           row.DefaultCellStyle.BackColor = Color.Red;
      }

显然,我需要把逻辑放在RowPostPaint事件中。现在一切都好了。

我在创建子表单时遇到了DataGridView单元格颜色的问题,我很难找到解决方案。如果使用子窗体,我必须确保更改了窗体加载事件中的颜色。我最初尝试从主方法更改颜色,但没有成功