Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

kako da znam koje je dugme pritisnuto

[es] :: .NET :: kako da znam koje je dugme pritisnuto

[ Pregleda: 2369 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

anakin14

Član broj: 73683
Poruke: 862
*.dynamic.sbb.rs.



+136 Profil

icon kako da znam koje je dugme pritisnuto30.07.2011. u 23:10 - pre 155 meseci

Code:

...
Dim ctrl As New System.Windows.Forms.Button
                    TabControl1.TabPages.Item(k - 1).Controls.Add(ctrl)
                    AddHandler ctrl.Click, AddressOf onbuttonclick
...



 Sub onbuttonclick()
        MsgBox("Hello from " - ovde bih da mi kaze koje je dugme... ctrl.name)
    End Sub


 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
212.200.241.*



+104 Profil

icon Re: kako da znam koje je dugme pritisnuto30.07.2011. u 23:34 - pre 155 meseci
ovo kao radi?
Code:
 Sub onbuttonclick()
        MsgBox("Hello from " - ovde bih da mi kaze koje je dugme... ctrl.name)
    End Sub


koliko je meni poznato Click handler mora da ima dva parametra, tj. treba da bude ovako
Code:
 Sub onbuttonclick(sender as object, e as eventargs)
        dim btn as button = directcast(sender, button)
        MsgBox("Hello from " & btn.name)
    End Sub


sender je kontrola koja je aktivirala Click event tj. koju si kliknuo
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

anakin14

Član broj: 73683
Poruke: 862
*.dynamic.sbb.rs.



+136 Profil

icon Re: kako da znam koje je dugme pritisnuto31.07.2011. u 12:41 - pre 155 meseci
naravno da ne radi, tu sam stavio sta bih hteo da postignem:D
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: kako da znam koje je dugme pritisnuto31.07.2011. u 13:27 - pre 155 meseci
/me se ceska po glavi...
Fora je sto radi. Ne znam ni ja kako, ali radi i dodavanje handler-a i pozivanje istog na click. Probah juce.

U svakom slucaju, ono sto ti je vujkev rekao ti resava problem. Napravi ispravan handler i sender parametar ti je button koji je pozvao handler. OK, ovo nije 100% obavezno ali mislim da neces imati problem sa tim pristupom.
 
Odgovor na temu

vujkev
Beograd

Član broj: 8072
Poruke: 1347
212.200.240.*



+104 Profil

icon Re: kako da znam koje je dugme pritisnuto31.07.2011. u 13:39 - pre 155 meseci
meni ne radi (.NET3.5)

Citat:

AddHandler Me.Click, AddressOf onclick

private sub onclick()

end sub

Error 3 Method 'Private Sub onclick()' does not have a signature compatible with delegate 'Delegate Sub EventHandler(sender As Object, e As System.EventArgs)'.


kako kod tebe radi? :)
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: kako da znam koje je dugme pritisnuto31.07.2011. u 14:24 - pre 155 meseci
Prvo sam probao u 4.0 pa kada si pomenuo i u 3.5...


 
Odgovor na temu

ravni

Član broj: 8894
Poruke: 373



+15 Profil

icon Re: kako da znam koje je dugme pritisnuto03.08.2011. u 18:14 - pre 154 meseci
zaboravio sam tehnikalije, ali u C# se moze napisati
Code:
btn.Click += delegate{};
i to prolazi. Valjda kompajler to interno kastuje u odgovarajuci delegat.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12851



+4784 Profil

icon Re: kako da znam koje je dugme pritisnuto09.08.2011. u 18:43 - pre 154 meseci
Nadjoh vremena da se malo pozabavim ovim i otkrijem kako radi (onako kako sam i pretpostavljao).
U pozadini se kreira dodatna funkcija koja se zaista doda kao event handler i ima ispravan potpis a ona pozove funkciju koju smo mi napravili.
Ovo je kod koji VS kreira u pozadini i kompajlira:
Code (vbnet):

Private Sub Form1_Load(ByVal sender As Object, ByVal e As EventArgs)
    Dim btn As New Button
    Me.Controls.Add(btn)
    AddHandler btn.Click, New EventHandler(AddressOf Me._Lambda$__1)
End Sub

Private Sub _Lambda$__1(ByVal a0 As Object, ByVal a1 As EventArgs)
    Me.onbuttonclick
End Sub
 



Ovo radi samo sa funkcijom koja nema argumenata jer inace ova generisana ne bi znala sta da prosledi.
 
Odgovor na temu

[es] :: .NET :: kako da znam koje je dugme pritisnuto

[ Pregleda: 2369 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.