Jump to content


Photo

Evento De Um Botão


  • Faça o login para participar
6 replies to this topic

#1 hebinhopassamani

hebinhopassamani

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 01/11/2005, 22:42

Pessoal,

Alguem pode me ajudar, imagine que eu tenha um botão BT1 estático no form, o clique desse botão cria um novo botão BT2, esse criado dinamicamente, em tempo de execução. como faço para setar o evento desse segundo botão BT2 para por exemplo escrever ola na tela?

estou usando vb.net

Muito obrigado

#2 felipecm

felipecm

    Expert

  • Usuários
  • 541 posts
  • Sexo:Não informado
  • Localidade:ABC / SP

Posted 01/11/2005, 23:29

Pessoal,

Alguem pode me ajudar, imagine que eu tenha um botão BT1 estático no form, o clique desse botão cria um novo botão BT2, esse criado dinamicamente, em tempo de execução. como faço para setar o evento desse segundo botão BT2 para por exemplo escrever ola na tela?

estou usando vb.net

Muito obrigado

Oh soh.. vc tem q adicionar um evento a ele.. eu costumo fazer isso usando AddHandler


Se eu nao me engano a sintaxe do AddHandler eh :
AddHandler Control.Evento, AddressOf Metodo

Entao .. acho q vc tenta uns eskema assim:

AddHandler BT2.Click, AddressOf BtDinamico_Click

E ai cria uma sub chamada BtDinamico_Click que tenha os parametros s as sender e e As EventArgs.
MCAD, MCP

#3 hebinhopassamani

hebinhopassamani

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 02/11/2005, 10:14

Aee parceiro, funciona parcialmente, hehe, se eu colocar a linha


se eu fizer isso que vc disse dentro da sub Page_Load do webform funciona.

porem se eu fizer isso dentro do evento click de algum botão estático, por exemplo, não funciona. Tipo

tenho um botão na tela, nome: "bt", estático colocado normalmente no form.

Private Sub Bt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt.Click
Dim btn As New Button
btn.ID = "BTHB"
Page.FindControl("Form1").Controls.Add(btn)

AddHandler CType(Page.FindControl("BTHB"), Button).Click, New EventHandler(AddressOf BtDinamico_Click)
End Sub

tenho a sub BtDinamico_Click que somente escreve algo na tela, alem disso um brake point para o debug parar ali se passar por ali.

Mas dessa forma não funciona... agora se eu colocar o mesmo código

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim btn As New Button
btn.ID = "BTHB"
Page.FindControl("Form1").Controls.Add(btn)

AddHandler CType(Page.FindControl("BTHB"), Button).Click, New EventHandler(AddressOf BtDinamico_Click)
End Sub

porem dentro do evento page load , Ai sim funciona!!
Valeu denovo brother vc ta sendo um grande parceiro,
Abraços
Hebinho

#4 felipecm

felipecm

    Expert

  • Usuários
  • 541 posts
  • Sexo:Não informado
  • Localidade:ABC / SP

Posted 02/11/2005, 11:51

Aee parceiro, funciona parcialmente, hehe, se eu colocar a linha


se eu fizer isso que vc disse dentro da sub Page_Load do webform funciona.

porem se eu fizer isso dentro do evento click de algum botão estático, por exemplo, não funciona. Tipo

tenho um botão na tela, nome: "bt", estático colocado normalmente no form.

Private Sub Bt_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Bt.Click
        Dim btn As New Button
        btn.ID = "BTHB"
        Page.FindControl("Form1").Controls.Add(btn)
       
        AddHandler CType(Page.FindControl("BTHB"), Button).Click, New EventHandler(AddressOf BtDinamico_Click)
End Sub

tenho a sub BtDinamico_Click que somente escreve algo na tela, alem disso um brake point para o debug parar ali se passar por ali.

Mas dessa forma não funciona... agora se eu colocar o mesmo código

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Dim btn As New Button
        btn.ID = "BTHB"
        Page.FindControl("Form1").Controls.Add(btn)
       
        AddHandler CType(Page.FindControl("BTHB"), Button).Click, New EventHandler(AddressOf BtDinamico_Click)
End Sub

porem dentro do evento page load , Ai sim funciona!!
Valeu denovo brother vc ta sendo um grande parceiro,
Abraços
Hebinho

Bom.. nunca criei EventHandlers dinamicos em Botoes.. mas 'e meio estranho

Tenta somente usar essa linha de AddHandler:
AddHandler btn.Click, AddressOf BtDinamico_Click

e na sub passe ela assim:
Private Sub BtDinamico_Click (ByVal sender As System.Object, ByVal e As System.EventArgs)
  'Code
End Sub

Se nao funcionaiar, experimenta criar uma funcao rodando em Page_Load que varra esses buttons criados dinamicamente e adicione os handlers atraves de alguma caracteristica especifica dos Buttons PreFabs.
For Each obj As Control in Page.FindControl("Form1").Controls
  ' CommandButtons que comecem com BTH (somente um exemplo)
  If GetType(obj) Is Button And obj.Id.Substring(0, 3) = "BTH" Then 
    AddHandler obj.Click, AddressOF BtDinamico_Click
  End If
Next

Nao me recordo bem se esse foreach funciona dessa forma, mas alguma coisa do tipo deve resolver.
MCAD, MCP

#5 hebinhopassamani

hebinhopassamani

    Novato no fórum

  • Usuários
  • 4 posts
  • Sexo:Não informado

Posted 04/11/2005, 08:59

Parceiro, acho que to entendendo o que ta acontecendo, mas nao to sabendo resolver, veja bem, se eu criar o BT2 no no evento on_click do BT1, esse estático, e edicionar o evento ao BT2 dentro do on_click de BT1 não funciona devido ao fato de após o final do evendo on_click do BT1 o novo BT2 deixa de existir.
agora se eu criar o BT2 e adicionar o evento a ele dentro do page load funciona, sabe porque, o page load é rodado ao inicio da pagina e cria BT2, quando eu clico em BT2 o page load é novamente chamado antes que chame o metodo do evento e BT2 é criado novamente. não entendo ao certo, pois eu uso a linha Page.FindControl("Form1").Controls.Add(bt2), imagino que ela seria suficiente para adicionar o botão ,recem criado, ao form. no caso que não funciona o botão Bt2 some da tela quando a pagina é recarregada.

sei que ta meio confuso, mas eu to muito mais, hehehehe se puder me ajudar...

assim não funciona:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim Bt2 As New Button
Bt2.Text = "Clique"
Bt2.ID = "TesteBT"
Page.FindControl("Form1").Controls.Add(Bt2)
AddHandler CType(Page.FindControl("TesteBT"), Button).Click, New EventHandler(AddressOf Me.Teste)
End Sub

Private Sub Teste(ByVal sender As System.Object, ByVal e As System.EventArgs)
Response.Write("Ola")
End Sub


Assim Funciona:

Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim bt2 As New Button
bt2.Text = "Clique"
bt2.ID = "TesteBT"
Page.FindControl("Form1").Controls.Add(bt2)
AddHandler CType(Page.FindControl("TesteBT"), Button).Click, New EventHandler(AddressOf Me.Teste)
End Sub

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click

End Sub

Private Sub Teste(ByVal sender As System.Object, ByVal e As System.EventArgs)
Response.Write("Ola")
End Sub

#6 HaroNism

HaroNism

    Super Veterano

  • Usuários
  • 13822 posts
  • Sexo:Masculino
  • Localidade:San Miguel de Tucuman

Posted 29/11/2017, 13:33

Generic Cialis 50 Mg Achete Du Cialis En France Livraisons Rapide Acquistare Levitra Generico Italia cialis online Buy Priligy In Europe Last Longer Exercise
Abilify Via Mail Order Levitra Blutdruck Cialis Originale Online viagra Prix Du Cialis C20 Viagra France Acheter En Bordeaux
Prix Propecia Generic Cialis Online Prescription Generic Cialis Professional Paypal viagra Baclofene Dose Max Achat Baclofen En France Amoxicillin 500 Dosage
Levitra Senza Ricetta Does Amoxicillin Work For Pneumonia Amoxicillin Allergy Symptoms viagra online pharmacy Cialis O Viagra Dove Comprare

#7 RonsisM

RonsisM

    Super Veterano

  • Usuários
  • 15724 posts
  • Sexo:Masculino
  • Localidade:Plovdiv

Posted 30/11/2017, 01:44

Viagra Schweiz Zurich Misoprostal 200 Mcg Buy levitra from canada Viagra Zollfrei Reductil Acomplia Propecia Clomid Canada Pharmacy




0 user(s) are reading this topic

0 membro(s), 0 visitante(s) e 0 membros anônimo(s)

IPB Skin By Virteq