title: Detect when any of the controls within a Group Box has changed
body: <p>I have an 'Apply' button on a form which initially has the property <code>Enabled = False</code>, but when a control within any <code>GroupBox</code> on the from is changed <code>Enabled = True</code> should be set.</p>
  
  <p>I have several GroupBox controls on the form, and I was hoping that I could simply check if a control within any of these had changed. However, while it seems you can hook to the <code>ControlAdded</code> and <code>ControlRemoved</code> events, there is no <code>ControlChanged</code> event.</p>
  
  <p>So I'm currently setting this up as below (there are a lot more than 5 controls to check in reality).</p>
  
  <p>Is there a more efficient way of doing this, as I can see this causing issues in the future (if options are ever added to a Group for example)? Thanks.</p>
  
  <pre><code>Private Sub ControlChanged(sender As Object,
                             e As EventArgs) Handles txtUsername.KeyUp,
                                                     chkRestoreIEFavourites.CheckedChanged,
                                                     chkRestoreNicknames.CheckedChanged,
                                                     chkRestoreDesktop.CheckedChanged,
                                                     chkRestoreQuickLaunch.CheckedChanged
      Me.btnApply.Enabled = True
  End Sub
  </code></pre>