DataGridView BackColor未在初始化时设置,但在刷新时设置

时间:2016-10-11 10:30:03

标签: c# datagridview

所以我创建了一个简单的地址簿项目,它将从sql server获取联系人并在datagridview中显示这些联系人。程序首次加载时,它会自动从数据库中获取联系人并填充网格。我有一个方法在填充后对网格进行样式化 - 它只是设置一些网格属性,除了默认的单元格样式背面颜色之外,它们似乎都有影响,它们最初什么都不做。

但是,当我通过自定义方法清除网格,然后通过调用与程序首次加载时相同的方法重新填充网格时,网格的背面颜色设置正确,这看起来非常奇怪。这是我的代码:

private void ClearGrid()
{
    grdContacts.DataSource = null;
    bindingSource.DataSource = null;
    bindingSource.Clear();
}

我已经在堆栈溢出的其他地方读过,对数据源绑定的数据网格进行样式处理可能很棘手,所以一开始我接受它是不可能的。但是一旦我调用了我的清晰网格方法:

public void StyleGrid()
{
        //Colour rows - currently not working
        for (int i = 0; i < this.RowCount; i++)
        {
            this.Rows[i].DefaultCellStyle.BackColor = i % 2 != 0 ? Color.Lavender : Color.AliceBlue;
        }

        //Set Column Widths
        this.Columns["AddressId"].Width = 70;
        this.Columns["EmailAddress"].Width = 150;
        this.Columns["Hobby"].Width = 148;
        this.Columns["Forename"].Width = 115;
        this.Columns["Surname"].Width = 115;

        this.ReadOnly = true;
        this.RowHeadersVisible = false;
        this.RowHeadersDefaultCellStyle.BackColor = Color.Lavender;
}

然后再次调用BindGridWithContacts()方法,网格样式使用我想要的颜色。这是我的StyleGrid()方法:

Wagons

注意:每次调用样式网格方法时,网格都会正确设置样式。

有什么建议吗?感谢

0 个答案:

没有答案