How to stop CellTextPaint from running more than once

I have two listboxes that display the contents of two different directories (by dragging a folder from the Finder onto each of them)
The objective is to compare each cell between the 2 tables and change the text color to RED in the second listbox if its cell value doesn’t equal that of the 1st listbox.

Here is my code in the event handler:

dim source as Listbox = lstbox1
dim destination as Listbox = lstbox2

For i as integer = 0 To source.ListIndex - 1
  //System.DebugLog(source.cell(i, -1) + " " + destination.cell(i, -1))
  If source.Cell(i, -1) = destination.Cell(i, -1) Then
    g.ForeColor = Color.Green
    g.ForeColor = Color.Red
  End If

What I’ve noticed is that this handler will run as many times as there are rows of data.
Is there a different handler I should be using so that it will only run once?

don’t make the for…next loop
just replace i with row and it will be run once per row, only for each displayed row.

Good to know… Thanks @Jean-Yves_Pochez