Principales respuestas
¿Me ayudan con este código? intento hacer un control de usuario

Pregunta
-
He creado un control al que solo le he puesto un control Label y un control Timer
------------------------------------------------------------------
He definido una propiedad Temporizador (en el archivo designer del control), así:
Public Property Temporizador As Boolean = False (En el archivo designer del Control)
-------------------------------------------------------------------------
La idea es que cuando ponga la propiedad Temporizador a True el control se oculte transcurrido un tiempo (5 segundos por ejemplo).
En el código del control tengo esto:
--------------------------------------------------------
Public Sub New()
InitializeComponent() 'Esta llamada es exigida por el diseñador.
'Agregue cualquier inicialización después de la llamada a InitializeComponent().
End Sub
Private Sub ControlPrueba_Load(sender As Object, e As EventArgs) Handles Me.Load
If Temporizador Then
Timer1.Interval = 5000
Timer1.Start()
End If
End Sub
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick
Dispose()
End Sub----------------------------------------------------------------
Lo anterior funciona, solo que hay un detalle que no está bien y es que curiosamente cuando agrego el control al formulario y pongo la propiedad que definí (Temporizador) a True, pasados los 5 segundos se desaparece del formulario en que lo puse sin haber ejecutado el programa (o sea en tiempo de diseño mientras estoy agregando controles al formulario).
Probé ocultando el control con su propiedad Visible a False, pero cuando lo ejecuto y luego regresa al IDE de VB Net el control se oculta, no se ve.
¿Me pueden ayudar a corregir el código? que haga lo mismo pero sin que se oculte en tiempo de diseño cuando pongo la propiedad Temporizador a True, es decir que se quede como cualquier otro control.
- Editado James-2016 martes, 17 de mayo de 2016 8:14
Respuestas
-
"James-2016" escribió:
> Lo anterior funciona, solo que hay un detalle que no está bien y es que
> curiosamente cuando agrego el control al formulario y pongo la propiedad
> que definí (Temporizador) a True, pasados los 5 segundos se desaparece
> del formulario en que lo puse sin haber ejecutado el programa (o sea en
> tiempo de diseño mientras estoy agregando controles al formulario).Tienes que verificar si te encuentras en tiempo de diseño o de ejecución utilizando para ello el valor de la propiedad DesingMode:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick If (Not Me.DesignMode) Then ' Este código solamente se ejecutará en tiempo de ejecución Me.Dispose() End If End Sub
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Marcado como respuesta James-2016 martes, 17 de mayo de 2016 9:43
Todas las respuestas
-
-
Como decía en la pregunta si hace lo que quiero, es decir, al ejecutarlo, desaparece el control despues de los 5 segundos.
El problema es que (por alguna razón que no entiendo) cuando coloco el control sobre un formulario y pongo la propiedad Temporizador a True, pasan los 5 segundos y desaparece el control (hablo en tiempo de diseño, por ejemplo arrastras un boton o una etiqueta y se queda allí, con el control de usuario que hice se supone que se debería quedar tambié pero se desaparece, solo cuando pongo la propiedad a true) ¿no te pasó eso?
-
"James-2016" escribió:
> Lo anterior funciona, solo que hay un detalle que no está bien y es que
> curiosamente cuando agrego el control al formulario y pongo la propiedad
> que definí (Temporizador) a True, pasados los 5 segundos se desaparece
> del formulario en que lo puse sin haber ejecutado el programa (o sea en
> tiempo de diseño mientras estoy agregando controles al formulario).Tienes que verificar si te encuentras en tiempo de diseño o de ejecución utilizando para ello el valor de la propiedad DesingMode:
Private Sub Timer1_Tick(sender As Object, e As EventArgs) Handles Timer1.Tick If (Not Me.DesignMode) Then ' Este código solamente se ejecutará en tiempo de ejecución Me.Dispose() End If End Sub
Enrique Martínez Montejo
[MS MVP - Visual Studio y Tecnologías de Desarrollo]
Nota informativa: La información contenida en este mensaje, así como el código fuente incluido en el mismo, se proporciona «COMO ESTÁ», sin garantías de ninguna clase, y no otorga derecho alguno. Usted asume cualquier riesgo al poner en práctica, utilizar o ejecutar lo recomendado o sugerido en el presente mensaje.
Si esta respuesta le ha resultado útil, recuerde marcarla como satisfactoria.
Si usas Visual Basic .NET y deseas ser productivo y feliz, se inteligente y activa la instrucción Option Strict.- Marcado como respuesta James-2016 martes, 17 de mayo de 2016 9:43
-