none
¿Me ayudan con este código? intento hacer un control de usuario RRS feed

  • 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
    martes, 17 de mayo de 2016 8:08

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
    martes, 17 de mayo de 2016 9:12
    Moderador

Todas las respuestas

  • acabo de probar tu codigo y si se ppuede poner controles en modo diseñador estando en true y cuando ejecuto la aplicacion desaparece  la venta despues de 5 segundos no entiendo cual es el problema amigo
    martes, 17 de mayo de 2016 8:33
  • 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?

    martes, 17 de mayo de 2016 9:04
  • "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
    martes, 17 de mayo de 2016 9:12
    Moderador
  • ¡ah! caramba, jajaja nunca lo hubiese descubierto, no tenía idea que en tiempo de diseño también podía ejecutarse el código, hace rato que batallo con eso. Gracias nuevamente.
    martes, 17 de mayo de 2016 9:24