Questo sito utilizza cookies, anche di terze parti, per mostrare pubblicità e servizi in linea con il tuo account. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - [VB.Net 2008/2010] Gruppi di controlli
Forum - C# / VB.NET - [VB.Net 2008/2010] Gruppi di controlli

Avatar
danduz97 (Normal User)
Pro


Messaggi: 130
Iscritto: 13/03/2011

Segnala al moderatore
Postato alle 16:48
Martedì, 17/01/2012
Buongiorno,
sto sviluppando un programma il quale deve gestire più di 50 textbox, checkbox e buttons e mi scoccia sempre scrivere tutti e 150 ogni volta che devo eseguire una operazione tipo il salvataggio My.Settings... :_doubt: non esiste una specie di "gruppo" nel quale dichiaro i 150 controlli una sola volta per poi applicare le varie funzioni al gruppo e non a tutti i 150 componenti? Esempio:

Di solito per impostare un checkbox faccio in questo modo
Codice sorgente - presumibilmente C++

  1. CheckBox1.Checked = False
  2.         CheckBox2.Checked = False
  3.         CheckBox3.Checked = False
  4.         CheckBox4.Checked = False
  5.         CheckBox5.Checked = False
  6.         CheckBox6.Checked = False
  7.         CheckBox7.Checked = False
  8.         CheckBox8.Checked = False
  9.         CheckBox9.Checked = False
  10.         CheckBox10.Checked = False
  11. eccetera...



quello che vorrei è scriverli in un gruppo per poi fare questo:

Codice sorgente - presumibilmente Plain Text

  1. gruppo_checkbox.Checked = False



Grazie infinite.. :D

Ultima modifica effettuata da danduz97 il 17/01/2012 alle 16:55


Quando un VeroProgrammatore da bambino impara a parlare, le sue prime parole non sono "mamma" o "papà" ma "Hello, World!"

Quando da piccolo a scuola il VeroProgrammatore doveva fare il tema "il mio papà", scriveva semplicemente Papà.toString().
PM
Avatar
Qwertj (Dev Team)
Guru


Messaggi: 678
Iscritto: 30/05/2011

Up
2
Down
V
Segnala al moderatore
Postato alle 15:19
Mercoledì, 18/01/2012
Quoto entrambi sopra e aggiungo un tip :D
Magari invece di usare l'editor crea i controlli dinamicamente, ossia aggiungendo oggetti della classe del controllo (CheckBox, ListBox, TextBox...) all'array Controls dell'elemento in cui sono contenuti (quindi, come ti consigliava GN, al Panel)
Così eviti di impazzire con l'editor che diventa pure lento, e riesci a impostare tutte le proprietà in una sola volta. Oltre a poter variare in qualsiasi momento il numero dei controlli

Hai ragione non ci avevo pensato, l'editor diventa di una lentezza assurda... quando ho disegnato tutta l'interfaccia di GN DrawCenter ogni volta che aprivo la finestra di progettazione crashava tutto per 5-10 secondi... - GN - 26/01/12 21:44


Blog:
<coming soon>
Appalo:
http://www.appalo.it/
PM
Avatar
Snogar (Normal User)
Pro


Messaggi: 130
Iscritto: 09/01/2012

Up
1
Down
V
Segnala al moderatore
Postato alle 21:30
Martedì, 17/01/2012
Puoi ciclare tutti i controlli presenti nella form tramite un ciclo for e assegnargli i valori che ti servono.

Esempio:

For Each tuoCONTROLLO As Control In Me.Controls

"Esegui le operazioni sui controlli"

next

----------------------------

Puoi anche creare un array di tuoi controlli e riferirti ad ognuno di loro tramite indice ....forse così è più semplice.

Esempio:

Dim GruppoCheckBox(149) As CheckBox
    
        For indice As Integer = 0 To 149
            GruppoCheckBox(indice).cecked = false
        Next    

Ultima modifica effettuata da Snogar il 17/01/2012 alle 21:36


PM
Avatar
GN (Member)
Guru


Messaggi: 770
Iscritto: 30/04/2011

Up
1
Down
V
Segnala al moderatore
Postato alle 22:06
Martedì, 17/01/2012
Testo quotato

Postato originariamente da Snogar:

Puoi ciclare tutti i controlli presenti nella form tramite un ciclo for e assegnargli i valori che ti servono.

Esempio:

For Each tuoCONTROLLO As Control In Me.Controls

"Esegui le operazioni sui controlli"

next

----------------------------

Puoi anche creare un array di tuoi controlli e riferirti ad ognuno di loro tramite indice ....forse così è più semplice.

Esempio:

Dim GruppoCheckBox(149) As CheckBox
    
        For indice As Integer = 0 To 149
            GruppoCheckBox(indice).cecked = false
        Next    


Quoto pienamente e aggiungo una cosa: potresti mettere i tuoi controlli in un panel e poi applicare il ciclo al panel, così sei sicuro di non interferire con altri controlli che non centrano.

come faccio a fare panel.checked= false? xD scusa... nn capisco :s - danduz97 - 18/01/12 16:14
Fai For Each sui Panel.Controls - GN - 18/01/12 20:26
aahh! non avevo capito ;) Grazie - danduz97 - 26/01/12 00:41


PM