Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
C# / VB.NET - Lista/Vettore di Oggetti
Forum - C# / VB.NET - Lista/Vettore di Oggetti - Pagina 2

Pagine: [ 1 2 ] Precedente | Prossimo
Avatar
CodeHelp (Member)
Rookie


Messaggi: 24
Iscritto: 12/02/2017

Segnala al moderatore
Postato alle 14:22
Sabato, 18/02/2017
Farei label.(qualcosa)
Ma il punto è che non me lo fa fare dalla lista.
Per esempio se faccio : lista[3].visible=false;
Mi da errore.
Vorrei sapere come fare questo grazie.

PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:06
Sabato, 18/02/2017
CodeHelp, posta il codice (completo) che stai cercando di eseguire.


Il mio blog: https://piero.dev
PM
Avatar
CodeHelp (Member)
Rookie


Messaggi: 24
Iscritto: 12/02/2017

Segnala al moderatore
Postato alle 16:37
Sabato, 18/02/2017
Ecco l'esempio di codice:
Codice sorgente - presumibilmente C# / VB.NET

  1. List <Object> oggetti = new List<object>();
  2. oggetti.add(label1);
  3. If(oggetti[0].Visible==true){}


Mi da errore su visible

PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 16:51
Sabato, 18/02/2017
Siccome la lista viene dichiarata di tipo Object, e Object non ha una proprieta' Visible, il compilatore ritorna (giustamente) un errore.

Codice sorgente - presumibilmente C# / VB.NET

  1. Object o = new Object();
  2. o.Visible = true; // Errore



Ma tu stai inserendo oggetti di tipo Label, che derivano da Object, quindi dovrebbero avere la prorieta' Visible giusto?

Si, ma devi dare un'aiutino al compilatore, dicendogli esplicitamente che anche se la tua lista contiene oggetti di tipo Object, in verita' sono di tipo Label, tramite un cast esplicito.

Codice sorgente - presumibilmente C# / VB.NET

  1. if (((Label)oggetti[0]).Visible == true){} // tutto OK



L'espressione "(Label)oggetto" vuol dire, tratta "oggetto" come un "Label".

p.s. quando scrivi un'espressione booleana di uguaglianza, non serve scrivere:

Codice sorgente - presumibilmente C# / VB.NET

  1. if (valore == true) // ...



Basta scrivere:

Codice sorgente - presumibilmente C# / VB.NET

  1. if (valore) // ...


Ultima modifica effettuata da pierotofy il 18/02/2017 alle 16:56


Il mio blog: https://piero.dev
PM
Avatar
CodeHelp (Member)
Rookie


Messaggi: 24
Iscritto: 12/02/2017

Segnala al moderatore
Postato alle 17:00
Sabato, 18/02/2017
Grazie!
Per la variabile booleana lo sapevo già, ma l'ho scritto per evitare fraintendimenti!:asd:

PM
Avatar
CodeHelp (Member)
Rookie


Messaggi: 24
Iscritto: 12/02/2017

Segnala al moderatore
Postato alle 17:12
Sabato, 18/02/2017
Ah un'altra cosa , al posto di fare

Codice sorgente - presumibilmente Plain Text

  1. oggetti.add(label1);
  2. oggetti.add(label2);
  3. oggetti.add(label3);
  4. Ecc..


Visto che dovrei mettere 300 label mi chiedevo se utilizzare addrange al posto di add mi sarebbe tornato utile.... E se si, come faccio ad aggiungere una raccolta di label??? Serve un elemento grafico particolare?

PM
Avatar
pierotofy (Admin)
Guru^2


Messaggi: 6230
Iscritto: 04/12/2003

Segnala al moderatore
Postato alle 17:41
Sabato, 18/02/2017
Apri un'altra discussione.


Il mio blog: https://piero.dev
PM
Pagine: [ 1 2 ] Precedente | Prossimo