Я предполагаю, что эти строки выполняются просто отлично:
this.FindControl("DiplomaPercentage").IsVisible = true;
this.FindControl("HSSPercentage").IsVisible = false;
Затем генерируется исключение:
this.FindControl("DPercentage").IsVisible = false;
Если это так, проверили ли вы, что DPercentage действительно является названием вашего элемента управления? Потому что на экране DPercentage - это Отображаемое имя . У меня нет возможности проверить, является ли имя элемента управления также DPercentage.
Надеюсь, это поможет.