Pagina 2 di 2 primaprima 1 2
Visualizzazione dei risultati da 11 a 19 su 19
  1. #11
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Ciao Tote grazie per il tuo intervento,volevo chiederti, tu dici di creare una funzione all'interno del form ricetta dove avrà come parametro una lista di tipo ricette e nell'evento closed dell'altro form di passargli questa la lista statica dichiarata prima.
    e poi la funzione dove la richiamo nel costruttore del form ricetta?


    Grazie.

  2. #12
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    Questa riga

    codice:
     
    
    Ricetta r = new Ricetta(lista);
    non sovrascrive un possibile oggetto ricerra (magari anch'esso chiamato r) che è nella form perchè è un oggetto locale alla funzione (in questo caso la form_closed)

    dovresti fare

    codice:
    this.r = new Ricetta(lista);
    ponendo che hai un oggetto ricetta dentro la form che si sta chiudendo..

    cmq segui tote che ti sta dando l'indicazione esatta per risolvere il tuo caso..

  3. #13
    Originariamente inviato da sanfra1976
    e poi la funzione dove la richiamo nel costruttore del form ricetta?


    Grazie.
    Nella funzione che crei nell'oggetto Ricetta, e che richiami nel Form_closed, scrivi anche il codice por aggiornare la lista. Non devi mettere nulla nel costruttore anche perchè se la form "Ricetta" già l'hai creata, per il costruttore non ci passi piu.

    Ciao

  4. #14
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Ciao a tutti, io continuo a non capire, e vi chiedo umilmente scusa se sono così tonto!,forse sarà il caldo oppure io sono un pò analfabeta.
    Cmq , vi chiedo se è possibile ricapitolare il tutto e almeno capirò una cosa nuova del C#.

    Allora io ho la form A(MDIChild) dove qui c'è una listview che sull'evento onload mi prende una funzione e mi carica tutto il listato in questa listview, in questa form A(MDIChild) ho anche dei pulsanti toolStrip e uno di questi pulsanti mi apre la Form B(MDIChild) in questa form B ho due campi(textBox) e un pulsante salva! quando clicco sul pulsante salva mi inserisce i record nel db.Di conseguenza chuido la form B(form_closed) e nella form A(ancora aperta) mi deve apparire anche il record appena inserito.

    Io ho anche, naturalmente, una classe Ricette dove ho inserito tutte le proprietà e i metodi che servono per gestire la classe Ricette,(tu mi dici che devo creare qui una funzione dove gli passo come parametro una lista di tipo Ricette )


    Poi io ho la Form ADDRicetta che sarebbe la Form B dove io nell'evento Form_Closed dovrei passare la lista aggiornata alla Famosa Form A(che si chiama Ricetta).
    Vi chiedo solo di seguirmi ancora un pò per capire meglio questa funzione come dovrei passarla al form Ricetta.
    Spero di non aver abusato ancora della Vostra pazienza.
    Grazie

  5. #15
    Utente di HTML.it L'avatar di Stoicenko
    Registrato dal
    Feb 2004
    Messaggi
    2,254
    nella form ricetta (che ha la listview) crei un metodo (chiamalo reload()) a cui passi la listache hai creato dove popolerai la listview..

    per passare questa lista dalla form a alla form b (contando che a è la form dove crei la lista e b è quella dove c'è la listview) nella costruzione della form a (quella dove fai salva quindi) devi passare un riferimento a b (nel costruttore, poi te lo salvi in una variabile) e nel form closed richiami la funzione reload (b.reload(lista))

  6. #16
    Originariamente inviato da Stoicenko
    nella form ricetta (che ha la listview) crei un metodo (chiamalo reload()) a cui passi la listache hai creato dove popolerai la listview..

    per passare questa lista dalla form a alla form b (contando che a è la form dove crei la lista e b è quella dove c'è la listview) nella costruzione della form a (quella dove fai salva quindi) devi passare un riferimento a b (nel costruttore, poi te lo salvi in una variabile) e nel form closed richiami la funzione reload (b.reload(lista))
    La fai difficile Stoicenko ...proviamo piu semplice.

    1 - Classe per la FORM A : contiene listview che tramite una funzione (ES ."aggiorna()") viene aggiornata prendendosi i dati da database.

    2 - Classe ADDRicetta (Form B) : contiene solo una textbox ed un pulsante di conferma.

    3 - Classe Ricette : contiene i dati per le ricette.

    Quando apri la form ADDRicetta dalla Forma A, visualizzala con ShowDialog()
    code form a:

    ...
    private void button_click(...)
    {
    ADDRicetta test = new ADDRicetta();
    test.ShowDialog(); //mostra Form B e blocca l'esecuzione di Form A
    this.aggiorna(); //aggiorna la ListView all'uscita da Form B

    }

    private void aggiorna()
    {
    //aggiorna listview prendendo i dati da database
    ....
    }

    public FORM_A_Load()
    {
    this.aggiorna();
    }
    ....

    Naturalmente nella classe ADDRicetta (FORM B) hai una funzione che aggiunge i dati in database alla pressione del tasto "ok" e poi chiude la form ( this.close() ).

    Altrimenti segui il procedimento di Stoicenko passandoti il riferimento della Forma A sulla B.

    Ciaoo

  7. #17
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Nel frattempo che aspettavo che Voi mi rispondevate, ho voluto sbattere ancora di più la testa e ho trovato una soluzione che sembra diversa da quella posta gentilmente da Voi, e volevo porla qui:

    nella famosa form b(ADDRicetta),e nell'evento form_closed inserisco questo codice:
    codice:
      private void AddRicetta_FormClosed(object sender, FormClosedEventArgs e)
            {
                ricette = new EstoreGeneric.Ricette();
                listaricette = ricette.Load();
                Ricetta ricetta = new Ricetta(listaricette);
               
               
                this.Hide();
                this.Dispose();
                
            }
    dove la variabile listaricette è statica.

    nella Famosa Form A(Ricetta) e nell'overload del costruttore

    codice:
     public Ricetta(List<EstoreGeneric.Ricette> listar)
            {
                listaricette = listar;
                this.Activated += new System.EventHandler(Ricetta_Activated);
            }
    dove listaricette anche qui è un'altra variabile statica.
    e sull'evento activate io popolo la listview con la varibaile statica listaricette.

    Volevo un Vostro giudizio su questa mia idea, che naturamente mi funziona.

    Grazie ancora per il Vostro costante aiuto.

  8. #18
    sanfra1976 di modi per fare l'operazione che dici ce ne sono una marea.
    A parte i giri strani di codice, la tua tecnica ha un problema fondamentale docuto al fatto che fai delle operazioni nel "form_closed" della formB. Se uno cerca di aggiungere un valore e poi ci ripensa...lol non può.

    La tecnica che ti ho proposto ( a mio giudizio cmq meno complessa ) se scritta così come te l'ho proposta ha lo stesso problema...ossia aggiornamento della lista in chiusura della formB. Può però essere semplicemente risolto inserendo un pulsante "cancel" nella formB. Alla pressione del tasto "ok" o "cancel" dai come valore di ritorno DialogResult.OK o DialogResult.Cancel.

    cosi facendo il codice che ti avevo indicato cambia con

    private void button_click(...)
    {
    ADDRicetta test = new ADDRicetta();
    if(test.ShowDialog() == DialogResult.OK) //mostra Form B e blocca l'esecuzione di Form A
    {
    this.aggiorna(); //aggiorna la ListView all'uscita da Form B
    }

    }

    Byezz

  9. #19
    Utente di HTML.it
    Registrato dal
    Apr 2007
    Messaggi
    162
    Grazie ancora per il tuo prezioso aiuto e appoggio su questa mia problematica.

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 © 2026 vBulletin Solutions, Inc. All rights reserved.