none
¿Cual es el evento 'beforeSave' para un userControl en tiempo de diseño? RRS feed

  • Pregunta

  • Hola:

    Mi duda es la del titulo, tengo un Usercontrol definido y quiero 'ejecutar código' justo antes de que mi control se guarde en 'tiempo de diseño', por poner un ejemplo para que se entienda, creo un usercontrol derivado de ListBox:

    Public Class uscListBox
        Inherits ListBox
    
        ' Creo una propiedad que me añade elementos al ListBox. Si la cambio en tiempo de diseño, me los añade.
        Dim _bShowEjemplo As Boolean = False
        Public Property ShowEjemplo As Boolean
            Get
                Return _bShowEjemplo
            End Get
            Set(value As Boolean)
                _bShowEjemplo = value
    
                Me.Items.Clear()
                If value Then
                    Dim nRnd As New Random(Now.Millisecond)
                    For n = 1 To nRnd.Next(7, 15)
                        Me.Items.Add(nRnd.Next(1, 10))
                    Next n
                End If
            End Set
        End Property
    
    ' Necesito un evento que se ejecute antes de guardar el usercontrol, para que BORRE los ítems creados.
        Private Sub uscListBox_BEFORE_SAVE_ENDESIGN() Handles Me.BEFORE_SAVE_ENDESIGN
            Me.Items.Clear()
        End Sub
    
    End Class

    Si creo un formulario y añado mi usercontrol, todo bien, si cambio la propiedad ShowEjemplo = True, me crea los ítems aleatorios. Pero si guardo los cambios del formulario, los ITEMS se guardan dentro de form.designer.vb, y es lo que quiero evitar.

    Un saludo


    • Cambiado Enrique M. Montejo jueves, 17 de septiembre de 2015 6:08 Pregunta relacionada con control de usuario de Windows Forms.
    jueves, 3 de septiembre de 2015 8:53

Todas las respuestas

  • Hola Enrique:

    El ejemplo no tiene 'mucha logica' :-) es para intentar explicar y probar que funciona lo que quiero hacer, que en realidad es:

    "Ejecutar un código en mi usercontrol ANTES de que se guarde en tiempo de diseño."

    El ejemplo es lo que se me ocurrió para intentar mostrar de forma facil y rápida lo que quiero, y poder comprobar que se esta ejecutando de verdad ;-)

    Un saludo


    • Editado LG DES lunes, 7 de septiembre de 2015 7:08
    lunes, 7 de septiembre de 2015 7:08
  • Hola:

    "Ahora bien, ¿cómo sabemos si el archivo del formulario está siendo guardado, bien por una acción directa del usuario (menú Archivo --> Guardar Form1.vb), bien automáticamente por el propio entorno de diseño de Visual Studio?"

    Con un evento, si existe claro :-), que es lo que pregunto.

    No estoy intentando modificar el designer.vb, solo quiero 'intentar' capturar el evento 'BeforeSave' (o algo parecido) de un usercontrol en tiempo de diseño, si existe.

    Un saludo


    • Editado LG DES miércoles, 9 de septiembre de 2015 6:31
    miércoles, 9 de septiembre de 2015 6:24