PREGUNTA: ¿Cómo Agrego un Control a un Control personalizado, que posteriormente pueda ser editable desde el diseñador? Como el TabControl.
RESPUESTA:
Código PHP:
Public Class Class_1
.
.
.
Public Sub Add()
Dim s As IContainer //Será Nuestro Contenedor
Dim MyControl As New Control //El control puede ser reemplazado por algun label etc..
MyControl.Name="MyControl"
.Iniciar Los valores del control
.
.
MyControl.CreateControl()//Obliga a su creación
s=me.Container //Es importante colocar "Me" no "MyBase", puede traer problemas.
If Me.DesignMode Then //Preguntamos si esta en modo de diseño
s.Add(MyControl)//Le dice al lenguage correspondiente que lo agrege como elemento en el codigo de contenedores
End If
Me.Controls.Add(MyControl) // Agrega el elemento a los controles del UserControl.
End Sub
.
.
.
.
End Class
Código PHP:
Public Class Class_1
.
.
.
Public Sub Add()
Dim s As IContainer //Será Nuestro Contenedor
Dim MyControl As New Control //El control puede ser reemplazado por algun label etc..
MyControl.Name="MyControl"
.Iniciar Los valores del control
.
.
MyControl.CreateControl()//Obliga a su creación
s=me.Parent.Container//Dice que se agregara a los controles del contenedor Padre
If Me.DesignMode Then //Preguntamos si esta en modo de diseño
s.Add(MyControl)//Le dice al lenguage correspondiente que lo agrege como elemento en el codigo de contenedores
End If
Me.Parent.Controls.Add(MyControl) // Agrega el elemento a los controles del Contenedor padre
End Sub
End Class
.
.
.
Código PHP:
.
.
.
Public Sub Removed(obj as IComponet)
Dim s As IContainer
If Me.DesignMode Then
s=Me.Container
s.Removed(obj)
End If
Me.Controls.Remove(obj)
end Sub
.
.
.
Código PHP:
Public Class Lab
Inherits Label
Private m As Point
Public Sub New(ByVal X As Integer, ByVal Y As Integer)
m = New Point(X, Y)
End Sub
Private Sub Lab_Move(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Move
Me.Location = m
End Sub
End Class


Este tema le ha gustado a 27 personas (incluyéndote)