Я должен был сделать именно это с IG WebGrid несколько лет назад, и это было ... скажем так ... болезненным. Тем не менее, у WebGrid было преимущество в виде единой точки рендеринга - после того, как HTML-файл был выпущен, мы были настроены!
Для решения этой проблемы в WinGrid я перепробовал множество различных событий, как в сетке, так и в источнике данных, и на каждом этапе встречался с полным провалом. Единственное событие, которое я получил на работу, было Paint
, что, вероятно, создаст проблему с производительностью.
Для Paint
, вот что я взломал вместе. Я не горжусь этим кодом, и, скорее всего, я бы его не запустил в производство, но в любом случае он здесь (C #):
private void UltraGrid1_Paint(object sender, System.Windows.Forms.PaintEventArgs e)
{
foreach (UltraGridRow r in UltraGrid1.Rows)
{
foreach (UltraGridCell c in r.Cells)
{
if (c.Text == "foo")
c.Appearance.BackColor = Color.Green;
}
}
}
и VB:
Private Sub UltraGrid1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles UltraGrid1.Paint
For Each r As UltraGridRow In UltraGrid1.Rows
For Each c As UltraGridCell In r.Cells
If c.Text = "foo" Then
c.Appearance.BackColor = Color.Green
End If
Next
Next
End Sub