Novo

Forum kao aplikacija na telefonu

Dodajte forum na početni ekran i koristite ga kao aplikaciju, sa menijem na dnu ekrana.

  • 7 odgovora
  • 3.395 pregleda

Najnovija ↓

kako da znam koje je dugme pritisnuto 31.07.2011. u 00:10 · pre 185 meseci #1

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


Re: kako da znam koje je dugme pritisnuto 31.07.2011. u 00:34 · pre 185 meseci #2
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
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: kako da znam koje je dugme pritisnuto 31.07.2011. u 14:27 · pre 185 meseci #4
/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.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Re: kako da znam koje je dugme pritisnuto 31.07.2011. u 14:39 · pre 185 meseci #5
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? :)
Potpis
Naučio sam...
Da je važnije biti ljubazan nego biti u pravu
Re: kako da znam koje je dugme pritisnuto 03.08.2011. u 19:14 · pre 185 meseci #7
zaboravio sam tehnikalije, ali u C# se moze napisati
Code:
btn.Click += delegate{};
i to prolazi. Valjda kompajler to interno kastuje u odgovarajuci delegat.
Re: kako da znam koje je dugme pritisnuto 09.08.2011. u 19:43 · pre 185 meseci #8
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.
Potpis
Nebojsa Milanovic:
-Trumpa smatram vrhunskim predsednikom i voleo bih da živim u državi na čijem je on čelu
-Rusija ne laže, ne vodi osvajačke ratove
-Trump je svetla tačka u USA blatu
-Elon Musk, možda najpametniji i najtrezveniji Amerikanac
Prijavite se da biste odgovorili u ovoj temi.PrijavaRegistracija

Premeštanje teme