Archief - constanten

Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.

aTw2

Legacy Member
ik ben bezig met een spel waar de knop waar je op drukt, een kleur krijgt.
Nu gebruik ik de volgende funtie daarvoor:

Private Function knop(ByVal a As Integer) Integer
For i As Integer = a To a + 4
Button(i).backcolor = Color.Green
Next
End Function

bij de code van de eerste button is dan bv.: knop(1), waardoor dus button 1 een groene achtergrondkleur moet krijgen. Nu heeft hij een error bij button(i)
Hij zegt hetvolgende:
'Button' is a type and cannot be used as an expression.

Hoe kan ik dit probleem nu oplossen?
(en de code is van visual basic)

theforce

Legacy Member
Ik ken wel niet veel van VB, maar als ik je code zo zie, veronderstel ik dat alle knoppen in een array ofzo staan?

Dan moet je ipv "Button(i)" de naam van die array daar gebruiken.

"Button" is hier een type-naam, net zoals "Integer" dat is.

SideShow

Legacy Member
button is een type he, niet gebruiken dus voor de benaming van uw eigen variables

aTw2

Legacy Member
Nee ze staan niet in een array. Weet iemand hoe ik dit doe? mss is dan mijn probleem opgelost.

aTw2

Legacy Member
Kan iemand me dan eens een simpel voorbeeld tonen? Ik probeer het nu met 2 buttons. Maar ik begrijp er niets van. Als ik alles goed lees gebruik ik arrays(denk ik toch). En ik heb de naam van mijn buttons veranderd in Btn.

hier nog eens mijn volledige code:

Public Class Form1
Dim btn() As Button
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn1.Click
knop(1)
End Sub
Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn2.Click
knop(2)
End Sub
Private Function knop(ByVal i As Integer) As Integer
btn(i).BackColor = Color.Green
End Function
End Class

NeverwinterX

Legacy Member
aTw2 zei:
Kan iemand me dan eens een simpel voorbeeld tonen? Ik probeer het nu met 2 buttons. Maar ik begrijp er niets van. Als ik alles goed lees gebruik ik arrays(denk ik toch). En ik heb de naam van mijn buttons veranderd in Btn.

hier nog eens mijn volledige code:

Public Class Form1
Dim btn() As Button
Private Sub btn1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn1.Click
knop(1)
End Sub
Private Sub btn2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn2.Click
knop(2)
End Sub
Private Function knop(ByVal i As Integer) As Integer
btn(i).BackColor = Color.Green
End Function
End Class

Ik stel voor dat je het nog eens leest, want je bent de grootte van de array vergeten.

m4rt1n0

Legacy Member
in dit geval kan je toch ook beter gewoon

Code:
Private Sub btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn1.Click, Btn2.Click
sender.BackColor = Color.Green
End Sub

gebruiken, niet?

voltje

Legacy Member
Zoals martino zegt.

En dan het click event van elke button koppelen aan btn_Click.

Wil je dan bvb nog weten welke button er geklikt word kan je filteren op
(sender As Button).Name
Het archief is een bevroren moment uit een vorige versie van dit forum, met andere regels en andere bazen. Deze posts weerspiegelen op geen enkele manier onze huidige ideeën, waarden of wereldbeelden en zijn op sommige plaatsen gecensureerd wegens ontoelaatbaar. Veel zijn in een andere tijdsgeest gemaakt, al dan niet ironisch - zoals in het ironische subforum Off-Topic - en zouden op dit moment niet meer gepost (mogen) worden. Toch bieden we dit archief nog graag aan als informatiedatabank en naslagwerk. Lees er hier meer over of start een gesprek met anderen.
Terug
Bovenaan