Usuário com melhor resposta
Pegando Nome do button

Pergunta
-
Eu gostaria de saber se é possivel pegar o nome de button atravez de uma funcao, tipo esse exemplo:
'cria um nomo button
Dim end as string
Dim dotnsBF = New Button()
dotnsBF.Location = New Point(38, 38)
dotnsBF.BackColor = Color.AliceBlue
dotnsBF.Enabled = True
dotnsBF.Text = "FEHD"
dotnsBF.Name = end + "FEHD"
dotnsBF.Width = 50
dotnsBF.Height = 50'chama funçao carregar
AddHandler downsBF.Click, AddressOf carregar
Private Sub carregar(sender As Object, e As EventArgs)
'Aqui ficaria o codigo de como pegar o nome do button que o chamou, como teria varios buttons e eles teriam que executar funcçoes semelhantes colocar varias Subs para cada um seria ruim, entao gostaria de saber se é possivel e se sim como?.
End Subobrigado pelas respostas...
Respostas
-
Veja se te ajuda :
'funcao carregar Private Sub carregar(sender As Object,e As EventArgs) Dim btn As Button = CType(sender, Button) Dim nome As String nome = btn.Name End Sub
- Marcado como Resposta TheKr4tosD quarta-feira, 5 de fevereiro de 2014 21:31
Todas as Respostas
-
Veja se te ajuda :
'funcao carregar Private Sub carregar(sender As Object,e As EventArgs) Dim btn As Button = CType(sender, Button) Dim nome As String nome = btn.Name End Sub
- Marcado como Resposta TheKr4tosD quarta-feira, 5 de fevereiro de 2014 21:31
-
Veja se te ajuda :
'funcao carregar Private Sub carregar(sender As Object,e As EventArgs) Dim btn As Button = CType(sender, Button) Dim nome As String nome = btn.Name End Sub
Kr4TosD, veja a resposta do Daniel - que foi ótima - o evento click já tem 2 argumentos, um deles é o "sender"". Sender é o objeto que disparou o evento, então você não precisará nem localizá-lo, o sender já é a referência ao botão que você quer.
Agora eu tenho uma preocupação - a função que você mostrou para criar o botão não define nenhum Form como Parent. Assim sendo, se apenas esta porção do código for a sua função, esse botão nunca vai aparecer em lugar nenhum para ser clicado. No "New Button()" faça também associação ao Parent (dotnsBF.Parent = [um Form - pode ser Me se a função estiver dentro do form já - ou um Panel) para que o botão apareça dentro desse Form/Panel na posição que você designou.
Outra coisa é adicionar ele no "controls" do Form/Panel - veja que todos os Forms que o visual studio cria, na inicialização dele ele da New em todos os componentes e os adiciona variável "controls" do Form (o Panel tem uma também, se você for colocar em um Panel, use a dele, não a do Form).
Isso possibilita que, quando o Form for destruído, o GC (Garbage Collector) levante o procedimento "Dispose" de todos os controles na variável Controls.
-
Daniel, Obrigado pela resposta, era exatamente isso que queria, entao foi perfeito!
SammuelMiranda, esta é so uma porçao do codigo, como isso é criado em uma GroupBox eu apenas utilizo isso (Named2.Controls.Add(dotnsBF)) para inseri-la na group box, mas obrigado pela sua explicaçao sobre Sender, e sua preocupação......
Obrigado pelas respostas...^^