none
Errore che non comprendo RRS feed

  • Domanda

  • Perché visualizzo questo errore? Cosa devo scrivere per non visualizzarlo?

    Se vi servono altri dettagli fatemi sapere!

    Non so davvero come fare! Ci sto provando ma non capisco perché non mi scrive nella label il contenuto dell'altra label.


    • Modificato fabio.b domenica 3 marzo 2019 17:13
    sabato 2 marzo 2019 18:19

Tutte le risposte

  • Ciao,

    come l'errore dice uno degli oggetti che stai utilizzando è null, immagino sia CARTE_Utente, quando il debug si ferma per l'errore controlla i valori dei vari oggetti e troverai quello a null

    Ciao

    Alessio

    domenica 3 marzo 2019 21:24
  • Come ti ha suggerito Alessio,

    uno degli oggetti coinvolti nell'espressione è nullo, ovvero:

    Nella tua espressione sono coinvolti vari oggetti,

    CARTE_UTENTE è un oggetto

    Label1 è un oggetto

    Memoria_Carte è un oggetto

    Label è un oggetto

    Tu stai chiedendo all'Oggetto Memoria_Carte di restituirti il valore della property Text dell'oggetto Label che è in esso contenuto. Se L'Oggetto Memoria_Carte non è inizializzato, quindi se da qualche parte non hai una chiamata di tipo:

    Memoria_Carte = new Memoria_Carte();

    Oppure

    Memoria_Carte = OggettoDelTipoDiMemoriaCarte;

    L'oggetto non è in grado di accedere ad alcuna delle sue property.

    Inoltre, se la property Label di Memoria_Carte, che a sua volta è un oggetto non fosse stata inizializzata come tale quindi

    Memoria_Carte.Label = oggettoLabel;

    oppure

    Memoria_Carte.Label = new OggettoditipoLabel;

    Ovviamente la tua chiamata non potrebbe accedere alla property Text di tale Label perché non esiste.

    saluti


    Sabrina C. - http://www.dotnetwork.it

    lunedì 4 marzo 2019 10:56
  • Devo dichiarare ogni cosa come oggetto? Puoi essere più chiara? Non capisco il problema è come fare label1.text = label2.text eppure non funziona c'è un altro modo per scrivere?


    • Modificato fabio.b giovedì 7 marzo 2019 09:32
    giovedì 7 marzo 2019 09:25
  • Non devi dichiarare ogni cosa come oggetto, ma gli oggetti devono essere istanziati.

    Ti faccio un esempio:

    public class Memoria_Carte
    {
        public Memoria_Carte()
        {
        }
    
    
        public Label CardLabel{
            get; set;
            }
    }
    
    
    
    public void MyMethod( Label SourceLabel)
    {
         //Se la classe che hai creato è uguale a quella sopra
         //Il codice di seguito darà errore
         Memoria_Carte memc = new Memoria_Carte();
         Memoria_Carte.CardLabel.Text = SourceLabel.Text;
    }
    
    //Perché non dia errore devi istanziare la Label all'interno
    //della tua classe quindi
    
    public class Memoria_Carte
    {
        public Memoria_Carte()
        {
             CardLabel = new Label();
        }
    
    
        public Label CardLabel{
            get; set;
            }
    }
    
    //Cambiando la classe come qui sopra indicato potrai
    //scrivere nel testo della Label.
    
    //Ovviamente, non è necessario che nella tua classe
    //tu inserisca una property label se quello che vuoi
    //Memorizzare è solo il testo ma dipende da ciò che vuoi fare
    

    Saluti


    Sabrina C. - http://www.dotnetwork.it

    giovedì 7 marzo 2019 10:41
  • Come è possibile che  Controls("Label" & Label).Text = num funziona così come è e invece per fare label su label devo scrivere tutto sto treno di roba.

    Ora provo ma sembra esagerata per una semplice scrittura text !!

    Ho inserito il codice mi sottolinea di rosso tutto. Non funziona nulla!

    ….

    Ripeto il codice aggiornato: è da correggere soltanto la parte "control" di destra!

    Dim A_0 As Integer, B_0 As Integer, C_0 As Integer, D_0 As Integer, E_0 As Integer, F_0 As Integer, G_0 As Integer, H_0 As Integer
            '
            Dim Carte As Integer : Carte = 1
    
            Dim Rnd As New Random()
            '
    RIPETI:
            '
            Dim num As Integer = Rnd.Next(1, 20) * 5
            '
            If Carte = 1 Then A_0 = num : If Carte = 2 Then B_0 = num : If Carte = 3 Then C_0 = num : If Carte = 4 Then D_0 = num : If Carte = 5 Then E_0 = num : If Carte = 6 Then F_0 = num : If Carte = 7 Then G_0 = num : If Carte = 8 Then H_0 = num
            '
            Carte = Carte + 1 : If Carte <> 9 Then GoTo RIPETI
            '
            ' Memorizza i dati delle Carte / Poi creare memoria X= A,B...H con ciclo -1...
            '
            Dim X As Integer, XX As Integer, X_MEMORIA_X As String, XXXX As Integer : XX = 1
            '
            X_MEMORIA_X = "CARTE_Utente" : XXXX = 0
            '
    RIPETI_1:
            '
            If XX = 1 Then X = A_0 : If XX = 2 Then X = B_0 : If XX = 3 Then X = C_0 : If XX = 4 Then X = D_0 : If XX = 5 Then X = E_0 : If XX = 6 Then X = F_0 : If XX = 7 Then X = G_0 : If XX = 8 Then X = H_0
            '
            Controls(X_MEMORIA_X & ".Label1").Text = Controls("Memoria_carte.Label" & X - 4).Text
            Controls(X_MEMORIA_X & ".Label2").Text = Controls("Memoria_carte.Label" & X - 3).Text
            Controls(X_MEMORIA_X & ".Label3").Text = Controls("Memoria_carte.Label" & X - 2).Text
            Controls(X_MEMORIA_X & ".Label4").Text = Controls("Memoria_carte.Label" & X - 1).Text
            Controls(X_MEMORIA_X & ".Label5").Text = Controls("Memoria_carte.Label" & X).Text
            '
            XX = XX + 1 : If XX <> 9 Then GoTo RIPETI_1
            '
            XX = 1 : XXXX = XXXX + 1
            '
            If XXXX = 1 Then X_MEMORIA_X = "Carte_Tempo" : GoTo RIPETI


     









    • Modificato fabio.b giovedì 7 marzo 2019 15:59
    giovedì 7 marzo 2019 11:01
  • Scusa la domanda,

    Ma non riesco a capire cosa stai scrivendo e in che ambiente sei.

    Se lavori come sembrerebbe in VB su Windows Forms, e il codice lo scrivi dentro al codice della form, tutti i tuoi controlli sono accessibili per nome.

    Pertanto per accedere a un controllo Es. Label1

    Puoi semplicemente scrivere

    Label1.Text = "Valore da assegnare";

    Non riesco a capire questo:

    Controls(X_MEMORIA_X & ".Label1").Text che roba sia...

    saluti


    Sabrina C. - http://www.dotnetwork.it

    giovedì 7 marzo 2019 11:40
  • Come è scritto nel codice sopra, la descrizione ovviamente l'ho aggiunta adesso.

    X_MEMORIA_X = "CARTE_Utente" ' INIZIALMENTE

    X_MEMORIA_X = "Carte_Tempo" ' DOPO

    Se ci sono altre domande fatemi sapere.

    VB.NET

    Comunque X_MEMORIA_X funziona benissimo è l'altra che non capisco perché non agisce creandomi questo errore che mi sta tenendo fermo da giorni.

    Almeno prima funzionava ma adesso nemmeno X_MEMORIA_X funziona!

    Resto in attesa di un vostro aiuto o suggerimento ! Nel frattempo sto cercando un altro modo per poter fare la stessa cosa in maniera diversa, magari creando un file esterno che raccolga i dati, "non so cosa poter scrivere" doveva essere una cavolata (scrivere in una label ma sembra impossibile).


    la sto rifacendo questa funziona ma non fa ciò che voglio

            With Memoria_carte
                '
                CARTE_Utente.Label1.Text = (".Label" & num & ".text")
                '
                Carte = Carte + 1 : If Carte <> 17 Then GoTo RIPETI ' (8*2 "+1")
                '
            End With


    Mi scrive nella label (label "num" .text) -> invece vorrei che mi scrivesse il contenuto di memoria_carte.label"num".text


    Dim Carte As Integer, Rnd As New Random(), A_0 As Integer, B

    _0 As Integer, C_0 As Integer, D_0 As Integer, E_0 As Integer, F_0 As Integer, G_0 As Integer, H_0 As Integer Carte = 1 ' RIPETI: ' Dim num As Integer = Rnd.Next(1, 20) * 5 ' If Carte = 1 Then A_0 = num : If Carte = 2 Then B_0 = num : If Carte = 3 Then C_0 = num : If Carte = 4 Then D_0 = num : If Carte = 5 Then E_0 = num : If Carte = 6 Then F_0 = num : If Carte = 7 Then G_0 = num : If Carte = 8 Then H_0 = num ' With CARTE_Utente ' .Label1.Text = Controls("MEMORIA_CARTE.Label" & A_0).Text ' Carte = Carte + 1 : If Carte <> 17 Then GoTo RIPETI ' (8*2 "+1") ' End With

    Non so come far scrivere in una label il contenuto di una label "?"

    Tramite Random di 20 label -> label1 … label20

    Dim num As Integer = Rnd.Next(1, 20) * 5

    Vorrei che scrivesse in label1 il contenuto della (memoria.label"num".text)

    è da giorni che ci sto provando ma senza alcun risultato, come devo scrivere?



    • Modificato fabio.b sabato 9 marzo 2019 09:34
    giovedì 7 marzo 2019 15:54
  • Posso sapere come è possibile che nessuno risponde alla domanda?

    Se c'è un errore nella domanda fatemi sapere.

    Devo assegnare ad una label1 il contenuto di una label(num) ovvero label con nome (1...2..3..4) dato da una casualità.

    Sto cercando ed attendendo la risposta da molto tempo, fatemi sapere grazie!

    Nel frattempo cerco in internet come già ho fatto nel tempo passato.


    Devo chiudere questa discussione e aprirne una nuova?

    Quale è il problema di questa domanda, cosa non capite, fatemi sapere grazie!

    • Modificato fabio.b martedì 12 marzo 2019 07:56
    domenica 10 marzo 2019 09:32