RE:sobreescribir un evento
Este ejemplo hace lo mismo con el control label, solo cambia la primer instancia.
Private Sub CrearControl(ByVal Nombre As String)
'Variable de mi nuevo objeto
Dim MyNewObject As New System.Windows.Forms.Label
Dim Formularios As formulario
Formularios = Me.ActiveMdiChild
'Levanto el tipo del nuevo objeto
Dim MyTipo As System.Type = MyNewObject.GetType
'Con el nombre del tipo y el contador le doy un nombre unico
MyNewObject.Name = MyTipo.Name & Convert.ToString(iContador)
'En la propiedad Text le pongo el nombre del nuevo control
MyNewObject.Text = MyNewObject.Name
'Ubico el nuevo control segun indicado
MyNewObject.Location = New System.Drawing.Point(1, 1)
MyNewObject.Width = 10
'Le agrego evento a mi nuevo control
AddHandler MyNewObject.DoubleClick, AddressOf DblClickEvent
AddHandler MyNewObject.MouseUp, AddressOf DragAction
'Agrego el control al contenedor
Formularios.Controls.Add(MyNewObject)
'Asigno Valor del Texto
MyNewObject.Text = Nombre
MyNewObject.BackColor = Color.LightGray
MyNewObject.AutoSize = True
'Creo el Control en la clase
Dim ClaseControl As New clsObjetos
ClaseControl.Nombre(iContador) = MyNewObject.Name.ToString
'Agrego 1 al contador
iContador += 1
End Sub
Private Sub DblClickEvent(ByVal sender As System.Object, ByVal e As System.EventArgs)
'A modo de ejemplo muestro un messagebox con el nombre de control que lo llamó
FontDialog1.ShowColor = True
Dim Etiqueta As New Label
Etiqueta = sender
FontDialog1.Font = Etiqueta.Font
FontDialog1.Color = Etiqueta.ForeColor
If FontDialog1.ShowDialog() <> DialogResult.Cancel Then
Etiqueta.Font = FontDialog1.Font
Etiqueta.ForeColor = FontDialog1.Color
End If
End Sub