Hola Leandro, si es como decis, con el AutoRedaw en true no se dispara el Paint, y en los formularios tampoco. Yo estaba usabndo el autoredraw en false, por lo que si se ejecutaba el Paint.
El problema era que yo queria que se disparara el Paint no cuando se hace un repintado completo de la ventana del userC, si no que tambien se dispare cuando se repinta una porcion de la ventana.(un sector de la misma)
La solucion estaba en colocar la propiedad ClipControls en false, de este modo, por ejemplo si tengo el usercontrol en la ventana de diseño, y coloco cualquier control encima del mismo, se dispara, del otro modo, no se disparaba, a no ser que un control tapase completamente el control, o que maximize y minimize la ventana del formulario o del ide del vb. No se si me abré explicado bien, ya que es medio choto explicarlo. Igual el módulo ese está muy bueno, ya que como decis , si queres intercetar el paint, y una ventana tiene activada el autoredraw, es imposibkle de hacerlo.
Con lo que me preguntás, me enteré el otro dia de como determinar si se esta en tiempo de diseño o de ejecución. Tenes que usar la propiedad UserMode del objeto Ambient
por ej:
Código:
Private Sub UserControl_Show()
If Ambient.UserMode Then
MsgBox "Estoy en tiempo de ejecución"
End If
If Ambient.UserMode = False Then
MsgBox "Estoy en tiempo de diseño"
End If
End Sub
saludos.
Pd para los moderadores: ¿no se puede cambiar el lapso de tiempo para sacar de sesión al estar inactivo? es muy incomodo postear de esta forma, si no me acordaba de hacer un copy paste perdia el mensaje y tenia que volver a escribir
saludos