OBTER NOME DO OBJETO CRIADO EM TEMPO DE EXECUCAO
Caros, boa tarde...
Estou com o seguinte problema, em um formulário eu crio vários picturebox em tempo de execução através do seguinte código:
Agora eu preciso que ao clicar sobre uma dessas imagens, um textbox receba o nome desse objeto (MyPic & teste(Int)) para que eu possa disparar os eventos referentes a ele.
Tem como eu fazer isso? Como?
Grato desde já!
(PS.: Uma outra coisa me passou pela cabeça...rss.. é possÃvel criar funções em tempo de execução?)
Estou com o seguinte problema, em um formulário eu crio vários picturebox em tempo de execução através do seguinte código:
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim teste As Integer
teste = 0
Do While teste < 22
Dim PB As New PictureBox
With PB
.Name = [Ô]MyPic[Ô] & teste
.Image = Image.FromFile([Ô]Prefixo[Ô] & teste)
.Location = New System.Drawing.Point(45 + ((teste - 1) * 35), 10)
.Size = New Size(30, 30)
.SizeMode = AutoSizeMode
.
End With
Me.Controls.Add(PB)
teste = teste + 1
Loop
End Sub
Agora eu preciso que ao clicar sobre uma dessas imagens, um textbox receba o nome desse objeto (MyPic & teste(Int)) para que eu possa disparar os eventos referentes a ele.
Tem como eu fazer isso? Como?
Grato desde já!
(PS.: Uma outra coisa me passou pela cabeça...rss.. é possÃvel criar funções em tempo de execução?)
Alguém tem um exemplo de como obter o nome do objeto ao clicar sobre ele? Mesmo que não sejam criados em tempo de execução? Eu só achei funções baseadas em loop e chamadas por um botão especifico... eu preciso que essa mesma função seja chama sobre o clique de qq objeto...
Eu lembro que eu já vi alguma coisa assim em vb 6... mas como eu chamo o Hwnd no Vb.net 2010?
Obrigado desde já a quem puder me dar uma luz!!!
Eu lembro que eu já vi alguma coisa assim em vb 6... mas como eu chamo o Hwnd no Vb.net 2010?
Obrigado desde já a quem puder me dar uma luz!!!
Não é la grande coisa mas vai.
Se for poucos objetos criados em tempo de desenvolvimento, você pode fazer assim
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = Button1.Name
End Sub
Private Sub ComboBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Click
TextBox1.Text = ComboBox1.Name
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
TextBox1.Text = Label1.Name
End Sub
End Class
Se for poucos objetos criados em tempo de desenvolvimento, você pode fazer assim
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBox1.Text = Button1.Name
End Sub
Private Sub ComboBox1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.Click
TextBox1.Text = ComboBox1.Name
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Label1.Click
TextBox1.Text = Label1.Name
End Sub
End Class
Crie uma sub para adicionar o evento MouseMove e depois adicione para o seu controle:
Private Sub Picture_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Label1.Text = sender.name
End Sub
Acrescente esta linha no Form2_Load: AddHandler .MouseMove, AddressOf Picture_MouseMove
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim teste As Integer
teste = 0
Do While teste < 22
Dim PB As New PictureBox
With PB
.Name = [Ô]MyPic[Ô] & teste
.Image = Image.FromFile([Ô]Prefixo[Ô] & teste)
.Location = New System.Drawing.Point(45 + ((teste - 1) * 35), 10)
.Size = New Size(30, 30)
.SizeMode = AutoSizeMode
AddHandler .MouseMove, AddressOf Picture_MouseMove
End With
Me.Controls.Add(PB)
teste = teste + 1
Loop
End Sub
Private Sub Picture_MouseMove(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs)
Label1.Text = sender.name
End Sub
Acrescente esta linha no Form2_Load: AddHandler .MouseMove, AddressOf Picture_MouseMove
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim teste As Integer
teste = 0
Do While teste < 22
Dim PB As New PictureBox
With PB
.Name = [Ô]MyPic[Ô] & teste
.Image = Image.FromFile([Ô]Prefixo[Ô] & teste)
.Location = New System.Drawing.Point(45 + ((teste - 1) * 35), 10)
.Size = New Size(30, 30)
.SizeMode = AutoSizeMode
AddHandler .MouseMove, AddressOf Picture_MouseMove
End With
Me.Controls.Add(PB)
teste = teste + 1
Loop
End Sub
Boa dia....
ADHEL, eu até pensei nisso mas o problema que este número não será fixo, cada vez que o usuário inserir uma nova imagem na pasta de destino, eu quero que ela seja apresentada no formulário! Obrigado mesmo assim!
RICART, quando eu crescer eu quero ser igual você...rss funcionou perfeitamente para o que eu precisava... Obrigado mesmo....!!!
ADHEL, eu até pensei nisso mas o problema que este número não será fixo, cada vez que o usuário inserir uma nova imagem na pasta de destino, eu quero que ela seja apresentada no formulário! Obrigado mesmo assim!
RICART, quando eu crescer eu quero ser igual você...rss funcionou perfeitamente para o que eu precisava... Obrigado mesmo....!!!
Tópico encerrado , respostas não são mais permitidas