Visualizzazione dei risultati da 1 a 4 su 4
  1. #1
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    75

    [VB 2005] matrici

    scusate sto passando da visual basic 6 a visual basic 2005 e ho notato una cosa che mi è parsa molto strana...... ma in visual basic 2005 non si possono usare le matrici di controlli? faccio questa domanda perchè senza le matrici di controlli fare determinate cose ci si impiega molto di più

  2. #2
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,472
    So che in VB.NET 2005, in riferimento proprio a questa versione del linguaggio, sono stati aggiunti molti automatismi per incentivare il passaggio dall'ormai obsoleto e non più supportato VB6, elementi che non esistevano nella precedente versione di VB.NET.

    A quanto pare, la gestione di una matrice di controlli non è tra queste.

    Sul fatto che ci si impiega molto più tempo a realizzare determinate architetture, può essere vero, benché è anche vero che la matrice di controlli non gestisce tutte le configurazioni possibili (ad esempio, non si può gestire con lo stesso evento tipi di controlli differenti, o almeno non senza "salti mortali"), cosa che invece è possibile in VB.NET.

    Per risolvere il tuo problema, credo sia sufficiente associare allo stesso evento, ad esempio al Click su un pulsante, un unico metodo per gestirlo; il parametro Sender passato all'evento contiene un riferimento diretto al controllo o, più in generale, al componente che ha generato l'evento stesso; convertendo quel riferimento usando il tipo appropriato, è possibile risalire alle proprietà dell'oggetto, come il nome, ad esempio.

    Sfruttando la proprietà Tag, benché non sia la soluzione ottimale al 100%, puoi facilmente attribuire un valore numerico a ciascuno dei tuoi controlli, risalendo a quel valore attraverso il parametro Sender passato all'evento e ottenere così un indice per esso.

    In alternativa, potresti pensare di creare i controlli di cui hai bisogno in fase di esecuzione, tramite codice, e inserirli in una lista da scandire poi alla ricerca dell'indice che corrisponde al Sender passato all'evento.

    Insomma, ci sono molti metodi per ottenere un'architettura in grado di rispondere allo stesso modo ad un evento generato da controlli, anche di diverso tipo.

    Prova a seguire le indicazioni che ti ho fornito facendo qualche prova e, in caso di difficoltà, scrivi di nuovo che ne riparliamo.

    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

    Home | Blog | Delphi Podcast | Twitch | Altro...

  3. #3
    Utente di HTML.it
    Registrato dal
    Dec 2005
    Messaggi
    75
    grazie per il suggerimento alka mi hai dato un punto di appoggio su cui iniziare, se avrò altri problemi mi farò risentire
    ciao

  4. #4
    in VB.NET 2003 c'è la possibilità di fare un array di controlli se non mi sbaglio... se prendi la lista dei controlli che si possono aggiungere alla toolbox troverai sotto i normali controlli ( tipo Button) un controllo con lo stesso nome del controllo precedente ma con in + la dicitura Array (tipo Button Array)... con quelli dovresti riuscire a fare quello che vuoi tu... anche se secondo me non è la soluzione + appropriata... sarebbe meglio lavorare come ti ha consigliato alka... ciao ciao
    I database... la mia passione + o -

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.