RuntimeAddUserControls
Este exemplo cobre as seguintes àreas :
- UserControl
- Event / RaiseEvent / WithEvents
- AddHandler / AddressOf
- Controls.Add
- Mouse
User Control
Form de teste
Public
Class UserControlTeste1
'Criar event que
retorna o objecto corrente
Public
Event click_MyControl(ByVal
obj As
UserControlTeste1)
Private
Sub
UserControlTeste_Click(ByVal
sender As
Object,
ByVal e
As System.EventArgs)
Handles
Me.Click
'Activar o evento
RaiseEvent
click_MyControl(Me)
End
Sub
Form de teste
Public
Class Form1
'Objectos que poderão
ser adicionados
Private
WithEvents
MyUserControl1 As
RuntimeAddUserControls.UserControlTeste1
Private
WithEvents
MyUserControl2 As
RuntimeAddUserControls.UserControlTeste2
'Variável temporária com Objecto que está a ser tratado
Private
WithEvents
currentUserControl As
Object
Private Mover
As
Boolean =
False
Private
Sub Button1_Click(ByVal
sender As System.Object,
ByVal e
As System.EventArgs)
Handles Button1.Click
Static
i As
Integer
i = i + 1
'Criar um controlo
dinamicamente
MyUserControl1 = New
RuntimeAddUserControls.UserControlTeste1
'Obrigatório
MyUserControl1.Location =
New
System.Drawing.Point(45, 25)
'Obrigatório
AddHandler
MyUserControl1.click_MyControl,
AddressOf
Get_Control_Click
'Obrigatório
Me.Controls.Add(MyUserControl1)
'Obrigatório
MyUserControl1.Name
= "UserControlTeste1 nº"
& i.ToString
'Facultativo
MyUserControl1.Size = New
System.Drawing.Size(150, 150)
'Facultativo
MyUserControl1.TabIndex = 0
'Facultativo
MyUserControl1.Visible =
True
'Obrigatório/Facultativo
End
Sub
'sub para controlar o
evento
Private
Sub Get_Control_Click(ByVal
sender As
Object)
Mover = Not
Mover
currentUserControl = sender
Label1.Text = "Obj
Corrente =" & currentUserControl.name
End
Sub
Private
Sub Form1_MouseMove(ByVal
sender As
Object,
ByVal e
As
System.Windows.Forms.MouseEventArgs)
Handles
Me.MouseMove
If Mover
Then
Me.currentUserControl.Location
= New
System.Drawing.Point(e.X, e.Y)
End
If
End
Sub
Private
Sub Form1_MouseClick(ByVal
sender As
Object,
ByVal e
As
System.Windows.Forms.MouseEventArgs)
Handles
Me.MouseClick
Mover = False
End
Sub