Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [VB.NET2008] matrici di controllo

    Ciao, sono alle prime armi con il vb.net e la prima cosa che ho notato è che non ci sono più le matrici di controllo ma leggendo il libro e l'help trovo che le funzioni sono comunque possibili in altro modo.
    Il mio problema (che sarà sicuramente banalissimo) è il seguente:


    ho 10 picturebox e in base al numero che scrivo dentro una textbox alcune devono esere visibili altre nascoste. In vb6 si usava una matrice picturbox(x) e per fare ciò bastava fare un ciclo
    for a = 1 to textbox (tanto per capirci)
    picturebox(a).visible=true
    next a

    con vb.net ora come faccio?

    Ciao grazie.

  2. #2
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    la prima cosa che ho notato è che non ci sono più le matrici di controllo
    E' vero
    Mi sa che devi ricorrere alla collezione Controls la quale però, ovviamente, comprende tutti i controlli presenti nel form, quindi per ciascuno devi chiederti se è una delle PictureBox in questione.

  3. #3

    cioè?

  4. #4
    Utente di HTML.it
    Registrato dal
    Jul 2008
    Messaggi
    758
    Cioè fai un ciclo For Each... Next sugli oggetti (definiti di tipo Control) della collezione Controls e per ognuno verifichi se è di tipo PictureBox
    codice:
            Dim objControl As Control
    
            For Each objControl In Me.Controls
                If TypeOf (objControl) Is PictureBox Then
                       ...fai quello che devi fare...
                End If
           Next
    Credo che esistano anche altre strade, questa è quella che mi sembra meno cervellotica.

  5. #5
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    grazie a tutti per le risposte ma essendo nuovo nel campo non capisco proprio come fare.. o meglio la soluzione ce l'ho ma si tratta di almeno una sessantina di righe di comando...

    provo a scrivere il codice in vb6, se qualcuno mi fa il favore di tradurmelo in vb2008

    evento textbox_change

    a=textbox.text
    for b=1 to a
    picturebox(b).visible=true
    next b



    Ciao grazie.

  7. #7
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    il codice postato sopra fa quello che vuoi.. basta inserire il visibile = true

  8. #8
    questo codice?:

    Dim objControl As Control

    For Each objControl In Me.Controls
    If TypeOf (objControl) Is PictureBox Then
    ...fai quello che devi fare...
    End If
    Next


    ma se non ho capito male con questo dico se il mio oggetto e una picturebox allora faccio.... picturbox.visible=true....

    ma non è quello che serve a me, a me serve che se io inserisco 4 la picturebox 1,2,3 e 4 diventano visibili, se inserico 2 solo la prima e la seconda saranno visibili mantre le altre 8 saranno invisibile etc etc...

    come lo adatto?

  9. #9
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Allora, o ogni volta che inserisci una picturebox la metti in un tuo vettore o in una tua lista, o ti tieni un contatore (ma devi sperare che siano in ordine)..

    codice:
    Dim objControl As Control
    Dim num = 4 'ad esempio
    Dim cont = 0 'non ricordo se si dichiara così in vb, vabbè aggiusta tu
    
    For Each objControl In Me.Controls
    If TypeOf (objControl) Is PictureBox Then
        If(cont < num) Then
           ...fai quello che devi fare...
           cont = cont +1
        End If
    End If
    Next

  10. #10
    ciao, stavo provando la tua soluzione ma mi resta cmq un problema:

    For Each objControl In Me.Controls
    If TypeOf (objControl) Is PictureBox Then
    If(cont < num) Then
    ...fai quello che devi fare...
    cont = cont +1
    End If
    End If
    Next

    qui dovrò metterci che la picturebox in questione deve essere visible, ma come faccio a farlo dinamico? cioè mettiamo caso che num=4 io dovrò dire che picturebox0, picturebox1, picturebox2, picturebox3.visible=true, ma come cambio ogni volta la picturebox?

    Ciao grazie per la pazienza.

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 © 2025 vBulletin Solutions, Inc. All rights reserved.