Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 11
  1. #1
    Utente bannato
    Registrato dal
    Jul 2003
    Messaggi
    404

    [VB.NET] Creare una matrice di controlli

    Come facco in VB.Net a creare una matrice di controlli?
    Mi spiego meglio in VB6 inserivo un controllo sul form e poi quando facevo il copia incolla mi chiedeva ce creare una matrice o un nuovo controllo. Quindi dovrei fare una cosa del genere,però in .Net quando faccio questa operazione mi crea direttamente un nuovo controllo.

    Grazie

  2. #2
    C'è una proprietà in VB6 che si chiama index (ora controllo...)
    si si è proprio lei inserisci un controllo, poi uno nuovo della stessa categoria e al secondo gli dai il nome del primo (prob. ti chiederà qualcosa) oppure modifichi quell'indice la...

    Perchè apri 3 3D? :rollo:

  3. #3
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Re: [VB.NET] Creare una matrice di controlli

    Originariamente inviato da bluelions
    Come facco in VB.Net a creare una matrice di controlli?
    Mi spiego meglio in VB6 inserivo un controllo sul form e poi quando facevo il copia incolla mi chiedeva ce creare una matrice o un nuovo controllo. Quindi dovrei fare una cosa del genere,però in .Net quando faccio questa operazione mi crea direttamente un nuovo controllo.
    Finalmente la matrice di controlli è stata debellata!

    Credo che la soluzione migliore sia quella di creare a runtime (scrivendo codice) i controlli di cui hai bisogno e di impostarne le proprietà adeguatamente.

    In alternativa, appoggia i controlli desiderati sul form e attribuisci loro un nome unico seguito da un progressivo; tramite codice, a runtime, puoi sempre ricercare il componente unendo nome e progressivo e richiamando il metodo del form che ti restituisce il componente dato il suo nome.

    Un'altra soluzione potrebbe essere quella di scandire tutti i controlli alla ricerca di quello interessato: quando si trova un controllo avente il nome che inizia con il prefisso stabilito, si ispeziona la proprietà Tag che dovrebbe essere impostata con un valore numerico differente per ogni controllo.

    Si tratta di soluzioni teoriche, ovviamente.

    Purtroppo non ho tempo di fornire nomi di metodi o esempi pratici di codice...due forum sono troppi da gestire e devo dedicarmi un po' pure al mio.

    Spero di averti dato comunque indicazioni sufficienti.
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  4. #4
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da SuperMariano81
    C'è una proprietà in VB6 che si chiama index (ora controllo...)
    Si parla di VB.NET.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  5. #5

    Re: Re: [VB.NET] Creare una matrice di controlli

    Originariamente inviato da alka
    Finalmente la matrice di controlli è stata debellata!
    Io comunque li trovavo molto comodi in VB6, li ho usati spesso e mi spiace che in vb.net non siano più presenti. Sicuramente ci saranno stati buoni motivi per abbandonarli, però a me piacevano...
    Sem nasù per patì, patèm!

  6. #6
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466

    Re: Re: Re: [VB.NET] Creare una matrice di controlli

    Originariamente inviato da diegocoz
    Io comunque li trovavo molto comodi in VB6, li ho usati spesso e mi spiace che in vb.net non siano più presenti. Sicuramente ci saranno stati buoni motivi per abbandonarli, però a me piacevano...
    Stavo semplicemente scherzando.

    In VB6 c'era una netta separazione tra progettazione visuale e codice, peraltro basato sugli oggetti; Visual Basic assomiglia ad un "mega wizard" per la costruzione di applicazioni, quindi la matrice di controlli era l'espediente più rapido per ottenere l'effetto desiderato di un insieme di controlli con lo stesso nome e indice differente.

    VB.NET è un linguaggio orientato agli oggetti, molto diverso dal suo predecessore, soprattutto dal punto di vista concettuale. Se deve esserci una matrice di controlli, tale matrice è una istanza di classe, magari una Collection, che mantiene al suo interno tutti i controlli e restituisce riferimenti agli stessi in base ad un indice o permette l'operazione inversa. In definitiva, ora il "mega wizard" è Visual Studio che consente lo sviluppo rapido di applicazioni agevolando l'uso di un linguaggio che, per sua conformazione, non consente più le scorciatoie di un tempo ma, a mio avviso, perchè ha delle caratteristiche che consentono - seppure con fatica in più da parte dei neofiti - di realizzare strutture di gran lunga più complesse.

    Riassumendo, la matrice di controlli è rapida ma limitata.

    Se io volessi creare una lista di controlli differenti in Visual Basic, come faccio? La matrice di controlli di certo non aiuta, mentre in altri linguaggio questo era già possibile; inoltre, non si poteva assegnare uno stesso metodo di gestione di un evento a più controlli... in definitiva, si trattava di un espediente rapido ma molto spesso limitativo in modo estenuante.

    E' per questo che gioisco all'eventuale notizia della morte della matrice di controlli...e i programmatori VB non devono essere tristi ma rallegrarsi delle nuove possibilità che il linguaggio offre in più.
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  7. #7
    Quando la cronica spossatezza di queste settimane abbandonerà il mio encefalo, mi butterò sul visualstudio.net (anche se i miei colleghi son più propensi al c# piuttosto che al vb.net, tanto imparare per imparare tanto vale imparare un limguaggio nuovo, fa anche più scena sul curriculum...) e così saprò apprezzare o confutare la tua tesi.

    Buon proseguimento
    Ciao

    un 'mega wizard' ...non male questa
    Sem nasù per patì, patèm!

  8. #8
    Moderatore di Programmazione L'avatar di alka
    Registrato dal
    Oct 2001
    residenza
    Reggio Emilia
    Messaggi
    24,466
    Originariamente inviato da diegocoz
    Quando la cronica spossatezza di queste settimane abbandonerà il mio encefalo, mi butterò sul visualstudio.net (anche se i miei colleghi son più propensi al c# piuttosto che al vb.net, tanto imparare per imparare tanto vale imparare un limguaggio nuovo, fa anche più scena sul curriculum...) e così saprò apprezzare o confutare la tua tesi.
    Non si tratta di una tesi...ad ogni modo, sono convinto che sarai d'accordo con me.

    I vantaggi di VB.NET, comunque, sono elencati su qualsiasi stralcio di documentazione provenga da Microsoft...e non si tratta solo di sbandieramenti commerciali.

    Originariamente inviato da diegocoz
    Buon proseguimento
    Ciao
    Ciao!
    MARCO BREVEGLIERI
    Software and Web Developer, Teacher and Consultant

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

  9. #9
    Vantaggi di vb.net rispetto a vb6 o a c# ?
    Sem nasù per patì, patèm!

  10. #10
    Utente di HTML.it L'avatar di darkblOOd
    Registrato dal
    Jul 2001
    Messaggi
    2,212
    premetto che non ho letto tutti i commenti ma "conoscendo" alka e la sua professionalità e competenza credo che tu abbia già avuto la risposta che cercavi. Ad ogni modo ti do un suggerimento:

    potresti creare una collection di controlli e metterci dentro i controlli con i quali ti interessa interagire. Questa tecnica ha i suoi vantaggi quando hai a che fare con più controlli di una stessa classe, ai quali devi modificare la/le stessa/e proprietà

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.