public void Paint(PaintEventArgs e) { //NOTE: For now I draw all the visible cells (not only the invalidated cells). using (GraphicsCache grCache = new GraphicsCache(e.Graphics, e.ClipRectangle)) { foreach (Range rng in m_Grid.GetVisibleRegion()) { m_Grid.OnRangePaint(new RangePaintEventArgs(m_Grid, grCache, rng)); } } }