Oggetto condiviso in due form

di il
7 risposte

Oggetto condiviso in due form

Buongiorno ragazzi...Vengo subito al dunque, ho una classe creata da me che esegue alcune operazioni di lettura e scrittura da un file, in form1 la istanzio per accedere alle sue proprietà. Dalla form1 mi prendo i vari campi di testo per salvarli in una lista appartenente alla classe.
Come posso recuperare la stessa lista anche nella form2 per poi poterci lavorare sopra? Spero di essere stato chiaro

7 Risposte

  • Re: Oggetto condiviso in due form

    Non tanto chiaro ...

    Dici che la lista appartiene alla classe ... Quindi al form2 devi passare il riferimento all'istanza della classe creata ...

    Mostra del codice per capire meglio ...
  • Re: Oggetto condiviso in due form

    oregon ha scritto:


    Non tanto chiaro ...

    Dici che la lista appartiene alla classe ... Quindi al form2 devi passare il riferimento all'istanza della classe creata ...

    Mostra del codice per capire meglio ...
    Form1:
    
    public partial class Form1 : Form
        {
            public Form1()
            {
                InitializeComponent();
            }
            GestioneContattiForm GestisciContatti = new GestioneContattiForm(); 
    
    Nella form1 utilizzo la classe da me creata che ho chiamato GestioneContattiForm creando l'oggetto GestisciContatti.
    Ora io nella form1 popolo questa lista: GestisciContatti.contattiPresentiSuTXT;
    La form2 viene aperta premendo un pulsante:
    
    private void btn_ModificaLista_Click(object sender, EventArgs e)
            {
                if (GestioneContattiForm.contattiPresentiSuTXT.Count==0)
                {
                    MessageBox.Show("Non ci sono contatti in rubrica, impossibile abilitare la modifica!");
                }
                else
                {
                    Form2 Form2 = new Form2();    .
                    Form2.ShowDialog(this);        
                }
                
            }
    
    La mia intenzione sarebbe quella di riprendere la lista in questione per utilizzarla nella form2. Magari passando, se possibile, l'oggetto tramite costruttore della form2. Grazie
  • Re: Oggetto condiviso in due form

    Mettere la lista in un modulo fuori dai form?
  • Re: Oggetto condiviso in due form

    Weierstrass ha scritto:


    Mettere la lista in un modulo fuori dai form?
    La lista si trova in quella classe che gestisce i contatti, è un errore?
  • Re: Oggetto condiviso in due form

    No, non è un errore, ma mi sembra un problema facilmente aggirabile a meno di essere un fondamentalista del dogma di incapsulare tutto in una classe...
  • Re: Oggetto condiviso in due form

    Weierstrass ha scritto:


    No, non è un errore, ma mi sembra un problema facilmente aggirabile a meno di essere un fondamentalista del dogma di incapsulare tutto in un form...
  • Re: Oggetto condiviso in due form

    Weierstrass ha scritto:


    No, non è un errore, ma mi sembra un problema facilmente aggirabile a meno di essere un fondamentalista del dogma di incapsulare tutto in una classe...
    Sicuramente per persone già formate sarà facilmente aggirabile, ora ho in rete ho trovato questa soluzione:
    
    private void btn_ModificaLista_Click(object sender, EventArgs e)
            {
                if (GestisciContatti.contattiPresentiSuTXT.Count==0)
                {
                    MessageBox.Show("Non ci sono contatti in rubrica, impossibile abilitare la modifica!");
                }
                else
                {
                    Form2 Form2 = new Form2();                                      
                    Form2.Contatti = GestisciContatti.contattiPresentiSuTXT;       
                    Form2.ShowDialog(this);                                         
                }
                
            }
            
    Nella form2:
    
    public List<StructUtente> Contatti { get; set; }
    
    Funzione bene...ora chiedo: va bene questo approccio? Esiste un modo per passarlo direttamente al costruttore della form2? Grazie
Devi accedere o registrarti per scrivere nel forum
7 risposte