Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    9

    [VB2010] CType su array di PictureBox

    Vorrei tramite il Ctype il nome della PictureBox cliccata come risposta della MsgBox, invece niente... Come mai? Dove sto sbagliando?

    codice:
        Dim Giocatore As PictureBox()
        Dim Avversario As PictureBox()
        Dim I As Integer
        Dim posizione As Point
        Dim primo, secondo As Integer
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            primo = 130
            secondo = 345
            Giocatore = New PictureBox(100) {}
            For I As Integer = 1 To 100
                Dim P As New PictureBox
                posizione = New Point(primo, secondo)
                P.Size = New Size(30, 30)
                P.Location = posizione
                P.BorderStyle = BorderStyle.FixedSingle
                Giocatore(I) = P
                AddHandler Giocatore(I).Click, AddressOf Me.Giocatore_Click
                Me.Controls.Add(Giocatore(I))
                Me.Controls.Add(P)
                primo = primo + 30
                If primo >= 430 Then
                    secondo = secondo + 30
                    primo = 130
                End If
            Next
    
    End Sub
    
        Private Sub Giocatore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            MsgBox("Hai cliccato su: " & CType(sender, Control).Name)
        End Sub

  2. #2
    Utente di HTML.it
    Registrato dal
    Jan 2011
    Messaggi
    237
    Ciao
    Ma cosa ti scrive con la messagebox?
    In ogni caso potresti assegnare tu il nome alle picturebox in fase di creazione, prima di aggiungerle al form..
    Prova anche con
    codice:
    CType(sender, PictureBox).name
    Oppure anche potresti ricavare le coordinate x e y del click e poi c'è una funzione apposta della classe form che restituisce il controllo specificando le coordinate.. Mi par di ricordare.

  3. #3
    Utente di HTML.it
    Registrato dal
    Jul 2013
    Messaggi
    9
    Okay grazie mille, proverò a risolvere così! A presto.

  4. #4
    Utente di HTML.it L'avatar di Vinsent
    Registrato dal
    May 2011
    Messaggi
    314

    Re: [VB2010] CType su array di PictureBox

    Originariamente inviato da Fustrus
    Vorrei tramite il Ctype il nome della PictureBox cliccata come risposta della MsgBox, invece niente... Come mai? Dove sto sbagliando?

    codice:
        Dim Giocatore As PictureBox()
        Dim Avversario As PictureBox()
        Dim I As Integer
        Dim posizione As Point
        Dim primo, secondo As Integer
    
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            primo = 130
            secondo = 345
            Giocatore = New PictureBox(100) {}
            For I As Integer = 1 To 100
                Dim P As New PictureBox
                posizione = New Point(primo, secondo)
                P.Size = New Size(30, 30)
                P.Location = posizione
                P.BorderStyle = BorderStyle.FixedSingle
                Giocatore(I) = P
                AddHandler Giocatore(I).Click, AddressOf Me.Giocatore_Click
                Me.Controls.Add(Giocatore(I))
                Me.Controls.Add(P)
                primo = primo + 30
                If primo >= 430 Then
                    secondo = secondo + 30
                    primo = 130
                End If
            Next
    
    End Sub
    
        Private Sub Giocatore_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
            MsgBox("Hai cliccato su: " & CType(sender, Control).Name)
        End Sub
    Il codice è giusto....però manca un particolare...devi impostare anche la proprietà Name delle PictureBox altrimenti risulta vuota.
    Prova ad inserire nel ciclo:
    codice:
    P.Name = I
    per assegnare il numero del ciclo come Name.

    PS: l' indice degli array parte da 0 quindi gli elementi di "Giocatore" sono 101 e con il For lasci vuoto l' elemento 0.

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.