Я не верю, что это призыв к инвалиду. Во всяком случае, Invalidate здесь не нужен, при условии, что эта кнопка является элементом управления. Когда вы изменяете состояние какого-либо элемента управления, он отвечает за аннулирование себя. Поэтому, когда вы изменили свойство BackColor элемента управления, он должен был сделать себя недействительным, что вызвало бы перерисовку.
Вы уверены, что свойство BackColor поддерживается для элемента управления, которым является btnAttachments (я предполагаю, что это обычная кнопка, но она может и не быть)?
Запрос дополнительной информации:
Мне также приходит в голову, что, поскольку это DataGridView, на самом деле у вас нет ссылки на надлежащий элемент управления, используемый для визуализации кнопки. DataGridView имеет концепцию шаблонов для элементов управления для строки / столбца / ячейки, а затем фактического экземпляра, который он использует.
Вам нужно показать, как вы получаете кнопку для этой конкретной строки / ячейки / столбца.