ADICIONAR LABEL EM TEMPO DE EXECUCAO COM EVENTO
Pessoal,
Alguém possui um código que adicione label em tempo de execução e que possa ser adicionado um bloco de comando no evento Click dos que forem sendo criados.
Desde já agradeço pela atenção.
Alguém possui um código que adicione label em tempo de execução e que possa ser adicionado um bloco de comando no evento Click dos que forem sendo criados.
Desde já agradeço pela atenção.
vc quer um label criado em run time (até aà tudo bem...)
mas não entendi o resto
mas não entendi o resto
Bom,
eu preciso pegar em uma variável o nome (Caption) do label criado, ou seja vai ser criado inúmeros labels e cada label vai ser preenchido o caption, porém quando mostrar o formulário e eu clicar sobre um dos labels criados uma variável receberá o nome que esta no label.
Espero ter sido mais claro.
Obrigado pela atenção.
eu preciso pegar em uma variável o nome (Caption) do label criado, ou seja vai ser criado inúmeros labels e cada label vai ser preenchido o caption, porém quando mostrar o formulário e eu clicar sobre um dos labels criados uma variável receberá o nome que esta no label.
Espero ter sido mais claro.
Obrigado pela atenção.
Assim colega
Private WithEvents Label1 As Label
Private Sub Command1_Click()
Set Label1 = Form1.Controls.Add([Ô]VB.Label[Ô], [Ô]Label1[Ô])
With Label1
.Top = 100
.Left = 100
.Caption = [Ô]Teste[Ô]
.AutoSize = True
.Visible = True
End With
End Sub
Private Sub Label1_Click()
MsgBox [Ô]HEI!!! Você me clicou!!! meu caption se chama[Ô] & Label1.Caption, vbCritical
End Sub
Para todos os efeitos então eu preciso declarar manualmente todos os eventos ?
Não há como declarar via código um evento para cada label criada em tempo de execução.
Aguardo notÃcias.
Não há como declarar via código um evento para cada label criada em tempo de execução.
Aguardo notÃcias.
Outra maneira que creio seja a mais apropriada
coloque um label em seu form, na propriedade index do mesmo coloque zero em visible = false.
cole estes codigos
detalhe vc não precisa criar um evento para cada botão, o evento click acima identifica o index do controle criado
coloque um label em seu form, na propriedade index do mesmo coloque zero em visible = false.
cole estes codigos
Dim Cont As Integer
Private Sub Command1_Click()
Cont = Cont + 1
Load Label1(Cont)
Label1(Cont).Top = Label1(Cont).Top
Label1(Cont).Left = Label1(Cont - 1).Left + 1000
Label1(Cont).AutoSize = True
Label1(Cont).Visible = True
Label1(Cont).Caption = [Ô]teste[Ô]
End Sub
Private Sub Form_Load()
Cont = 0
End Sub
Private Sub Label1_Click(Index As Integer)
MsgBox Label1(Index).Caption & Index
End Sub
detalhe vc não precisa criar um evento para cada botão, o evento click acima identifica o index do controle criado
Marcelo,
vou pedir um favor, pois infelizmente está funcionado para a adição de um único controle. Poderia colocar um exemplo, mas com a adição de inúmeros labels, ou seja carregar em tempo de execução e declarar o evento em vários labels?
Desde já agradeço pela atenção.
vou pedir um favor, pois infelizmente está funcionado para a adição de um único controle. Poderia colocar um exemplo, mas com a adição de inúmeros labels, ou seja carregar em tempo de execução e declarar o evento em vários labels?
Desde já agradeço pela atenção.
primeiro como vc irá adionar estes labels, pois o evento acima insere varios labels, basta vc declarar a variavel Cont no general do form ou como public em um módulo.
assim ao se clicar no botão varios labels serão inseridos
entendeu agora, apenas preste atenção quanto a posição pois voce pode acabar criando um em cima do outro, veja as propriedades top e left.
em anexo um exemplo simples
assim ao se clicar no botão varios labels serão inseridos
Private Sub Command1_Click()
Cont = Cont + 1
Load Label1(Cont) [ô][txt-color=#007100] aqui ao se somar 1 ao Cont ex: Label1(1)...Label1(2)...etc[/txt-color]
Label1(Cont).Top = Label1(Cont).Top
Label1(Cont).Left = Label1(Cont - 1).Left + 1000
Label1(Cont).AutoSize = True
Label1(Cont).Visible = True
Label1(Cont).Caption = [Ô]teste[Ô]
End Sub
entendeu agora, apenas preste atenção quanto a posição pois voce pode acabar criando um em cima do outro, veja as propriedades top e left.
em anexo um exemplo simples
Marcelo,
Adaptei aqui e está funcionando perfeito.
Obrigado pela atenção e pela paciência.
Encerrando o tópico
Adaptei aqui e está funcionando perfeito.
Obrigado pela atenção e pela paciência.
Encerrando o tópico
Tópico encerrado , respostas não são mais permitidas