gli UserControl espongono l'evento InitProperties, nel quale è possibile leggere il colore del contenitore ed assegnarlo al controllo:
Private Sub UserControl_InitProperties()
UserControl.BackColor = Extender.Container.BackColor
End Sub
questo funziona per qualsiasi posizione assuma il controllo, ovvero su un form o dentro un controllo contenitore (PictureBox, Frame, etc.)
per quanto riguarda le variazioni, è possibile sfruttare un'altro evento, AmbientChanged
Private Sub UserControl_AmbientChanged(PropertyName As String)
UserControl.BackColor = Extender.Container.BackColor
End Sub
per quest'ultima cosa c'è un problema, però...
le variazioni sono rilevate dall'usercontrol solo se è disposto sul form, se inserito in una picturebox, o in un frame o, in generale, in un contenitore, le variazioni non vengono rilevate e il controllo rimane tale.
probabilmente col sistema che ti suggeriva _gas riesci a "monitorare" le variazioni anche se il controllo è in un contenitore... ma questo dovrebbe essere attivo anche in fase di progettazione, e non è una buona cosa... piuttosto, potresti fare lo stesso controllo sull'evento Paint, in modo che quando il controllo viene "ricreato" in fase di esecuzione gli venga attribuito il colore del contenitore.
TheTruster