Originariamente inviato da dops
esatto.. richiama il form secondario che si apre, dove c'è un pulsante e due textbox e dove scrivo il record nel db..No, tu crei una nuova istanza del form chiamante e chiami il metodo populateList di quell'istanza; in sostanza, stai aggiornando un form equivalente al chiamante, appena creato, mai visualizzato.Originariamente inviato da dops
ma in questo stesso form richiamo la funzione pubblica populateList() che si trova nel form principale e che utilizzo anche nel load del form principale per popolare il listview all'apertura di questo..
Secondo me, ci sono molti errori nel codice che hai riportato.Originariamente inviato da dops
la funzione richiamata dal form secondario viene eseguita sicuramente ma il listview non si ripopola con il record aggiunto, mentre se la richiamo dal form dove è istanziata mi popola correttamente il listview..
In primo luogo, l'uso di molti Application.DoEvents che potrebbero comportare diversi problemi.
La chiusura di molte connessioni non è garantita con il costrutto try...catch.
Il form secondario dovrebbe essere modale e restituire un valore di ritorno che segnali la conferma o l'annullamento, dopo aver provveduto a salvare il record (o a... far nulla, in caso di annullamento dell'operazione).
L'aggiornamento della ListView dovrebbe essere introdotto nel form chiamante, a seguito della chiusura del form secondario, solo se quest'ultimo ha confermato l'inserimento di un nuovo record.
Nel caso in cui non si tratti di un form modale, si dovrebbe passare un riferimento del form chiamante al form secondario di inserimento che consenta a questo di sfruttare tale riferimento per invocare l'aggiornamento per l'oggetto che rappresenta il form chiamante, quell'istanza specifica, senza creare un nuovo form.
Più in generale, insomma, ci vorrebbe un approfondimento della programmazione OOP in quanto tale, indispensabile per sviluppare correttamente in .NET.
Ciao!![]()


Rispondi quotando