[VB.NET] handles op een control array

Pagina: 1
Acties:

Acties:
  • 0 Henk 'm!

Anoniem: 321068

Topicstarter
Hallo iedereen,

Voor mijn po informatica ben ik een soort zeeslagje aan het maken maar begin vast te raken bij het maken van het zogenaamde grid. Mijn idee is eigenlijk om een veld te maken van 10 bij 10 pictureboxjes en deze declareren in een array (dit is ook gelukt) en wanneer je vervolgens op een pictureboxje klikt je de coordinaten van het grid kan zodat je deze later door kan sturen in een tcp client.dit is een opzet (3 bij 3 om even alls te coderen)

Afbeeldingslocatie: http://puu.sh/2yFLm/af4427073d

en de pictureboxjes hebben allemaal de naam x(x-coordinaat)y(y-coordinaat). Hierbij heb ik dus deze code geschreven maar schiet niet veel meer op. Ik loop op het weergeven van de coordinaten vast en talloze uren op google hebben mij niks wijzer gemaakt.. dit is alvorens mijn code
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
Public Class Form1
    Public grid(3, 3) As PictureBox
    Public pbnaam As String

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For x = 1 To 3
            For y = 1 To 3
                pbnaam = "x" & x & "y" & y
                grid(x, y) = DirectCast(Me.Controls.Find(pbnaam, True)(0), PictureBox)
            Next
        Next
    End Sub
    Private Sub arrayclick Handles grid(x,y)
        MsgBox("x component =" & x & ", y component =" & y, )
    End Sub
End Class


heeft iemand een idee :X

Acties:
  • 0 Henk 'm!

  • lennartb
  • Registratie: December 2003
  • Laatst online: 03-07 15:00
Ik wil je wel helpen maar weet niet precies waarom je nu een array met pictureboxen wil maken. Wil je gewoon dat wanneer je op een picturebox klikt, de naam van de box getoond wordt? Oftewel de XY waarde jij hem geeft?

Acties:
  • 0 Henk 'm!

Anoniem: 321068

Topicstarter
lennartb schreef op vrijdag 12 april 2013 @ 17:29:
Ik wil je wel helpen maar weet niet precies waarom je nu een array met pictureboxen wil maken. Wil je gewoon dat wanneer je op een picturebox klikt, de naam van de box getoond wordt? Oftewel de XY waarde jij hem geeft?
ja, maar dan zonder met de naam van de picturebox (x1y1) te hoeven werken... anders kon ik wel string manipulatie gebruiken (en die x,y coordinaten is ook zodat ik bijvoorbeeld al neer kan zetten dat er al op geklikt is door middel van een subroutine, niet 10*10 subroutines).

Acties:
  • 0 Henk 'm!

  • lennartb
  • Registratie: December 2003
  • Laatst online: 03-07 15:00
Bedoel je dit?


Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click, PictureBox2.Click


MsgBox(DirectCast(sender, PictureBox).Name) 'of whatever property....


End Sub

Dus...

1 eventhandler voor al je boxes en binnen die handler de properties uitlezen van degene die het event triggerde?

[ Voor 19% gewijzigd door lennartb op 12-04-2013 17:39 ]


Acties:
  • 0 Henk 'm!

Anoniem: 321068

Topicstarter
Zoiets ja, maar hoe zou ik nu kunnen werken met mijn grid(x,y) variabelle? Want mijn idee was om zo de x en y coordinaat uit een klik te kunnen lezen en hieruit de grid(x,y) zo aanpassen (bijvoorbeeld image: dat hij al geraakt is bijvoorbheeld). Dit hoeft niet met de picturebox naam zelf omdat ik hieruit moeilijk een ai kan coderen.

[ Voor 15% gewijzigd door Anoniem: 321068 op 12-04-2013 18:00 ]


Acties:
  • 0 Henk 'm!

  • lennartb
  • Registratie: December 2003
  • Laatst online: 03-07 15:00
Het verdient niet de schoonheidsprijs maar de naam die je terugkrijgt kun je splitten in een X en Y waarde om vervolgens in die array naar de juiste te verwijzen.

Dan krijg je dus iets van:
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click, PictureBox2.Click

Dim X as integer
Dim Y as integer
Dim strName as string
strName = DirectCast(sender, PictureBox).Name

X = strName.Substring(1,1)
Y = strName.Substring(3,1)

'aangeven dat hij aangeklikt is..
Grid(X,Y).BackColor= Red

End Sub

Zoiets?

Acties:
  • 0 Henk 'm!

Anoniem: 321068

Topicstarter
Ja perfect, inderdaad niete schoonheidsprijs maar toch heel erg bedankt voor je werk en ik kan nu weer een eind vooruit... nogmaals bedankt! Alleen ik weet niet of het nog mogelijk is om inplaats van alles na de handles (x1y1, x1y2 etc) korter te kunnen maken..?

[ Voor 30% gewijzigd door Anoniem: 321068 op 12-04-2013 20:24 ]


Acties:
  • 0 Henk 'm!

  • alwinuzz
  • Registratie: April 2008
  • Laatst online: 23:12
Je kan door je grid loopen en dan AddHandler doen op de Click van elke PictureBox
Pagina: 1