The best programmer will never need to disable or hide a control, because they'll find a less convoluted solution.
In this same dialog, I have primary checkboxes and subsidiary checkboxes that only make sense when the primary checkbox is checked. So when the primary checkbox is cleared I disable the subsidiary ones.
This is actually the least convoluted solution (for the user) and IMO good design and good programming.