![]() |
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:
Alvast bedanktPrivate Sub btnwaarde1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnwaarde1.Click |
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 |
Hoe maak ik die arry nu juist aan
wat houd dat in Ik ben geen VB expert grtz :) |
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). |
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. |
Citaat:
|
Alle tijden zijn GMT +1. Het is nu 04:41. |
Powered by vBulletin® Version 3.8.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.