Override DoEnable() in wxGrid instead of Enable() to ensure that the grid is shown appropriately for its current state whenever either it or its parent is disabled. Note that this also fixes the bug with only the main grid window being refreshed, but not the row/column headers, which also need to be.