我有一个带有配额的DataGridView。
我想找到最小的配额,用红色为其字体着色,用绿色为其字体着色最大配额。
在UserControl上绘制具有透明背景的自定义DataGrid组件。
答案 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设置单元格的前景色。