Scholieren.com forum

Scholieren.com forum (https://forum.scholieren.com/index.php)
-   Software & Hardware (https://forum.scholieren.com/forumdisplay.php?f=20)
-   -   Gelijkaardige events in VB (https://forum.scholieren.com/showthread.php?t=1718798)

jasper_claeys 08-10-2008 14:29

Gelijkaardige events in VB
 
Halo voor een opdracht voor softwareontwikkeling moet ik een rekenmachine en hier komen heel wat gelijk waardige events in hoe kan ik mijn code verkleinen zie voorbeeld:
Private Sub btnwaarde1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde1.Click
txtdisplay.Text &= btnwaarde1.Text
End Sub

Private Sub btnwaarde2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde2.Click
txtdisplay.Text &= btnwaarde2.Text
End Sub

Private Sub btnwaarde3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde3.Click
txtdisplay.Text &= btnwaarde3.Text
End Sub

Private Sub btnwaarde4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde4.Click
txtdisplay.Text &= btnwaarde4.Text
End Sub

Private Sub btnwaarde5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde5.Click
txtdisplay.Text &= btnwaarde5.Text
End Sub

Private Sub btnwaarde6_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde6.Click
txtdisplay.Text &= btnwaarde6.Text
End Sub

Private Sub btnwaarde7_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde7.Click
txtdisplay.Text &= btnwaarde7.Text
End Sub

Private Sub btnwaarde8_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde8.Click
txtdisplay.Text &= btnwaarde8.Text
End Sub

Private Sub btnwaarde9_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde9.Click
txtdisplay.Text &= btnwaarde9.Text
Alvast bedankt

Warsocket 08-10-2008 16:43

Van je cijferknoppen een array maken (dat kan iig in vb 6 in .Net weet ik het niet)

dan krijg je 1 eventhandeler voor al je knoppen die in die array zitten

jasper_claeys 08-10-2008 22:33

Hoe maak ik die arry nu juist aan
wat houd dat in
Ik ben geen VB expert
grtz :)

ILUsion 09-10-2008 19:39

Ik werk al jaren niet meer met VB (Delphi was mijn laatste ervaring met grafische Windows-interfaces in een comfortabele IDE), maar door een array te maken, krijg je hoogstwaarschijnlijk ook problemen met die grafische mogelijkheden.

Want je gaat ze niet meer grafisch kunnen verslepen e.d., maar je gaat ze in je code moeten toevoegen aan je Form/formulier. Echt moeilijk is dat niet normaal, maar het is eigenlijk best een gedoe (omdat je normaal mooi een eigenschappenvenster enzo krijgt, maar dat nu niet meer kan gebruiken).

Ik kan je wel zeggen wat ik in Delphi deed bij dergelijke problemen, ik vermoed dat dat in VB ook gaat, maar vraag me niet om code; want dat zit me veel te ver. Wat je doet is 1 event handler schrijven die je met al je knoppen associeert (via dat eigenschappenvenster/object inspector of hoe dat in VB ook noemt), in die event handler, zorg je gewoon voor een algemene afhandeling.

Dus iets als (mogelijk geen VB code, zal eerder op Delphi lijken):
txtdisplay.Text &= (sender as TButton).Text

In VB hoef je misschien niet te casten met die as TButton (dat komt uit Delphi, trouwens), zodat je misschien kan proberen met
txtdisplay.Text &= sender.Text

Als dat niet lukt, moet je opzoeken hoe je in VB ervoor kan zorgen dat een object zich gedraagt als een object van een subklasse (child class), dus in dit geval een object dat een Button voorstelt (in Delphi TButton, maar in VB is dat iets anders normaal).

Lethalis 17-10-2008 19:16

In het geval van VB.Net:

Private Sub btnwaarde_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
txtdisplay.Text &= ctype(sender, button).Text
End Sub

sender bevat namelijk het object dat het event triggert.

In je form load kun je dan met AddHandler koppelen:

AddHandler btnwaarde1.Click, AddressOf btnwaarde_Click
AddHandler btnwaarde2.Click, AddressOf btnwaarde_Click
AddHandler btnwaarde3.Click, AddressOf btnwaarde_Click
AddHandler btnwaarde4.Click, AddressOf btnwaarde_Click

Etc.

De AddHandler hoeft overigens niet per se (kan ook via form designer). Selecteer de betreffende knop, ga naar Events en selecteer het algemene Click event.

deadlock 20-10-2008 14:50

Citaat:

jasper_claeys schreef: (Bericht 28294056)
Hoe maak ik die arry nu juist aan
wat houd dat in
Ik ben geen VB expert
grtz :)

Kopiëer en plak hetzelfde object meerdere keren dan vraagt hij of je een control array wil maken.


Alle tijden zijn GMT +1. Het is nu 04:41.

Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.