Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Poblemi Windows Form
martedì 13 gennaio 2009 - 20.53
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Bazzi
Profilo
| Junior Member
67
messaggi | Data Invio:
mar 13 gen 2009 - 20:53
Ciao a tutti....sono un programmatore Cobol e poco ho iniziato a programmare in VB.Net per cui mi trovo con un po' di problemini da risolvere....spero qualcuno mi possa aiutare...
Allora...ho una FormA che gestisce una ListView. Con alcuni tasti di inserimento e variazione, richiamo una seconda FormB nella quale posso variare i dati di record del ListView che ho selezionato. All'uscita dalla FormB devo ricaricare la ListView della FormA.
Utilizzando l'istruzione FormB.Show() il programma prosegue con le istruzioni che seguono, ossia il ri-caricamento della ListView ed in questo modo anche dopo la variazione da FormB, tornando nella FormA non ho la lista aggiornata.
Utilizzando l'istruzione FormB.showdialog() il programma effettivamente elabora la FormB ed all'uscita mi ricarica la ListView correttamente. A questo punto però, siccome in FormB effettuo un DataBinding sui campi di input, quando entro per la prima volta in FormB tutto ok....se esco, torno in FormA e poi di nuovo in FormB esce il seguente messaggio di errore : "ArgumentException non è gestita.In questo modo l'insieme avrebbe due associazioni alla stessa Proprietà. Nome parametro : binding."
Grazie.
The Bazz
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
mar 13 gen 2009 - 22:14
prova a postare il codice che hai utilizzato.
Bazzi
Profilo
| Junior Member
67
messaggi | Data Invio:
mar 13 gen 2009 - 22:46
FormA :
FormB.ShowDialog()
ShClDB.riempi("Salvataggi") ' Carico tutta la tabella nel Dataset
ShClDB.popolaLW("Salvataggi", True, True, False, False, False, ListView1) ' Popolo il mio Listview
FormB :
ShClDB.StrSql = "Imposto la mia stringa SQL funzionante'"
ShClDB.StrConn = "Imposto il provider"
ShClDB.riempi("Salvataggi") ' Carico il record selezionato in FormA nel Dataset
' Eseguo il binding sui miei campi
txtNome.DataBindings.Add("Text", ShClDB.Ds.Tables(0), ShClDB.Ds.Tables(0).Columns(0).ColumnName)
txtDescrizione.DataBindings.Add("Text", ShClDB.Ds.Tables(0), ShClDB.Ds.Tables(0).Columns(1).ColumnName)
ckbIncludi.DataBindings.Add("CheckState", ShClDB.Ds.Tables(0), ShClDB.Ds.Tables(0).Columns(4).ColumnName, True)
txtDataUltEsec.DataBindings.Add("Text", ShClDB.Ds.Tables(0), ShClDB.Ds.Tables(0).Columns(5).ColumnName)
ckbUltEsito.DataBindings.Add("Checked", ShClDB.Ds.Tables(0), ShClDB.Ds.Tables(0).Columns(6).ColumnName, True)
Come dicevo, funziona tutto la prima volta, la seconda volta che entro nel "dettaglio" cioè nella FormB mi da il messaggio che ho postato prima....
Ho provato anche ad eseguire in chiusura del form la seguente istruzione :
TxtNome.DataBindings.Clear ()
Ciao e grazie
The Bazz
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
mar 13 gen 2009 - 22:52
Innanzitutto prova a fare una cosa più corretta.....tipo questa:
Dim frmFormB as New FormB
frmFormB.ShowDialog()
poi fammi sapere.
Bazzi
Profilo
| Junior Member
67
messaggi | Data Invio:
mar 13 gen 2009 - 22:59
Ottimo....funziona !!!
Grazie Mille.
Sai dove posso approfondire il discorso Form...showdialog e tutto quanto ?
The Bazz
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
mar 13 gen 2009 - 23:09
In questo caso.....intendo dire....per questo errore, dovresti approfondire il concetto di programmazione orientata agli oggetti(OOP),in quanto, anche il form, è un oggetto e quindi va trattato come tale.
Per ogni oggetto deve essere creata una nuova istanza(allocato in memoria) e, per chi non implementa l'interfaccia IDisposable, disallocato con Nothing, altrimenti usare il metodo Dispose.
Parti da un buon libro di Vb.net....io ti posso consigliare quello di Alessandro DelSole perchè, frequentandolo in un forum, ti posso dire(per esperienza diretta) che è una persona davvero in gamba.....comunque, per le basi, va bene anche un qualsiasi altro libro(che si possa definire tale).
Posso anche dirti che, .net hell.it l'ho conosciuto cercando documentazione in rete e, il più delle volte, sono finito su questo forum che.....si è rivelato molto utile.
Cerca tra gli articoli, i tutorial, e quant'altro....troverai davvero delle cose interessanti e utili.
alexmed
Profilo
| Guru
1.186
messaggi | Data Invio:
mer 14 gen 2009 - 00:28
Ciao
visto che anch'io son autodidatta mi chiedevo se non basta mettere alla chiusura del Form (in questo caso B) Me.Dispose?
Ciao
PS
Io ho preso della Mondadori "Visual Basic 2008 Passo per Passo" (anche se uso 2005) e mi sembra un buon libro (peccato il prezzo)
Jeremy
Profilo
| Guru
1.527
messaggi | Data Invio:
mer 14 gen 2009 - 14:26
Ciao
Sono autodidatta anchio, quindi, ti rispondo in quanto tale(non prenedere utto per buono).
In realtà, credo, che il Dispose dell'oggetto Form, sia implicito, in quanto, viene gestito, secondo me, dall'evento FormClosed.
Tanto è vero che, quando si chiude l'ultimo Form dell'applicazione, quest'ultima viene terminata.
Si potrebbe comunque fare una prova per approfondire.....basta aprire 2 o 3 form in una applicazione, guardare l'utilizzo di ram nel taskmanager e poi, chiuderne uno alla volta.
Ciò non toglie che, devi comunque sempre creare una nuova istanza dell'oggetto form che stai per aprire.
Ciao.
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !