C#min DataGridView上的最大值

时间:2017-07-22 02:52:07

标签: c# winforms datagridview

我有一个带有配额的DataGridView。

我想找到最小的配额,用红色为其字体着色,用绿色为其字体着色最大配额。

在UserControl上绘制具有透明背景的自定义DataGrid组件。

1 个答案:

答案 0 :(得分:0)

您可以使用" DataBindingComplete"事件。这样就可以了。

private void qoutaGrid_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e)
    {
        int min = qoutaGrid.Rows.Cast<DataGridViewRow>().Min(r => Convert.ToInt32(r.Cells["MyProperty"].Value));
        int max = qoutaGrid.Rows.Cast<DataGridViewRow>().Max(r => Convert.ToInt32(r.Cells["MyProperty"].Value));

        for (int i = 0; i < qoutaGrid.Rows.Count; i++)
        {
            int value = Convert.ToInt32(qoutaGrid.Rows[i].Cells["MyProperty"].Value);
            if (value == min)
            {
                qoutaGrid.Rows[i].DefaultCellStyle.ForeColor = Color.Red;
            }
            if (value == max)
            {
                qoutaGrid.Rows[i].DefaultCellStyle.ForeColor = Color.Green;
            }
        }
    }

假设您所需的号码存储在MyProperty中。您可以获得绑定数据源的最小值和最大值。然后你可以用min和max比较其他值,以便使用DefaultCellStyle设置单元格的前景色。