Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 14
  1. #1

    [C#] richiamare textBox da altra classe

    Ciao a tutti, sono nuovo in ambiente .net, e sto lavorando ad un progetto in C# per un esame. Mi sono imbattuto in un problema: vorrei poter scrivere su una textBox contenuta nel Form principale di una applicazione Windows, effettuando una chiamata da altre classi contenute nello stesso namespace, ma non ci riesco. Come posso fare? Grazie mille.

  2. #2
    Per farlo devi ottenere l'istanza della form dove c'è la textbox. Application.OpenForms ti restituisce tutte le form attualmente aperte.

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  3. #3
    Ciao chipdb, grazie per la risposta... purtroppo non ho ben capito cosa intendi. Potresti spiegarti meglio? Il mio problema è che vorrei modificare il testo di una textBox (contenuta in una classe Form) richiamando quest'ultima dall'interno di alcuni metodi presenti in un'altra classe (non Form).

  4. #4
    Originariamente inviato da chipdb
    Per farlo devi ottenere l'istanza della form dove c'è la textbox. Application.OpenForms ti restituisce tutte le form attualmente aperte.

    C# non è vb6 dove tu puoi prendere una form e modificare direttamente il contenuto di una sua textbox. Devi avere l'istanza della form (che trovi in Application.OpenForms) e poi fai miaForm.textBox.Text = "nuovo testo"

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  5. #5
    Originariamente inviato da chipdb
    C# non è vb6 dove tu puoi prendere una form e modificare direttamente il contenuto di una sua textbox. Devi avere l'istanza della form (che trovi in Application.OpenForms) e poi fai miaForm.textBox.Text = "nuovo testo"
    Capisco, il fatto è che sto facendo dei tentativi con un'unica Form chiamata Form1, quindi per avere l'istanza dovrebbe bastare scrivere Form1.textBox.Text = "testo";. Non è così?

    Grazie ancora.

  6. #6
    Assolutamente no. Qui stiamo parlando di classi e loro istanze. Form è il nome della classe che definisce la form, l'istanza di Form1 è la form che vedi a schermo. Tu volendo puoi fare:

    codice:
    Form FormA = new Form1();
    Form FormB = new Form1();
    Ma FormA è DIVERSO da FormB. Quindi tu devi cercare un modo per ottenere la tua form, e per farlo devi guardare nelle form che sono aperte attraverso l'oggetto Applicaiton.OpenForms.

    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  7. #7
    Originariamente inviato da chipdb
    Quindi tu devi cercare un modo per ottenere la tua form, e per farlo devi guardare nelle form che sono aperte attraverso l'oggetto Applicaiton.OpenForms.
    Perfetto, grazie mille. Quale metodo di Application.OpenForms devo adoperare per capire qual'è l'istanza della Form che posso usare? Grazie.

  8. #8
    Codice PHP:
    (Application.OpenForms["<Nome Form>"] as <Classe della Form>).Controls["<Nome TextBox>"].Text "CIAO!"
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

  9. #9
    Ho provato ad inserire il codice:

    Codice PHP:
    (Application.OpenForms["Form1"] as Form1).Controls["textBox1"].Text "testo"
    (il nome della form e quello della classe sono "Form1"), ma il valore all'interno della textbox non varia, e ricevo il seguente messaggio: "NullReferenceException non è stata gestita: Riferimento a un oggetto non impostato su un'istanza di oggetto."

    Grazie ancora...

  10. #10
    Dove lo inserisci quel codice?
    Cerco ombrello vecchio, nuovo, moderno o antidiluviano; purché protegga da una pioggia che vien giù come Dio la manda. Fate presto che ho l’acqua alla gola. (Noè)

    C# programming and other stuffs

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.