|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Junior Member
Iscritto dal: Mar 2009
Messaggi: 13
|
[VB.NET08EE]Scrittura file serializzato
Ciao, ho creato una piccola applicazione che carica i dati da un file serializzato su un datagridview. Il problema nasce quando, dopo aver modificato i dati nel datagridview, all'uscita non mi salva i cambiamenti.
Il codice è il seguente: Codice HTML:
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
Dim i
For i = 1 To DataGridView1.RowCount - 1
Dati.Descrizione(i) = CType(DataGridView1.Rows(i).Cells("Column1").Value, String)
Dati.NomeUtente(i) = CType(DataGridView1.Rows(i).Cells("Column2").Value, String)
Dati.Password(i) = CType(DataGridView1.Rows(i).Cells("Column3").Value, String)
Dati.Indirizzo(i) = CType(DataGridView1.Rows(i).Cells("Column4").Value, String)
Next
Dim FileStream As Stream = File.Create(FileName)
Dim serializer As New BinaryFormatter
serializer.Serialize(FileStream, Dati)
FileStream.Close()
End Sub
Codice HTML:
(DataGridView1.Rows(i).Cells("Column1").Value, String)
Grazie, ciao |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
E hai provato a spostare quel codice dall'evento FormClosing e invece farlo partire ad esempio da un pulsante sulla Form ? Funziona oppure no ?
|
|
|
|
|
|
#3 |
|
Junior Member
Iscritto dal: Mar 2009
Messaggi: 13
|
|
|
|
|
|
|
#4 |
|
Senior Member
Iscritto dal: Feb 2003
Città: Stockholm (SE)
Messaggi: 1343
|
Probabilmente quando Form.Closing viene invocato i controlli figli sono già stati distrutti.
Ma potrei dire una caxxata, è un sacco che non tocco WinForms |
|
|
|
|
|
#5 | |
|
Senior Member
Iscritto dal: Dec 2004
Messaggi: 3210
|
Quote:
In ogni caso, quale che sia la ragione, non è mai una buona idea eseguire codice che faccia esplicite richieste ai componenti grafici, negli eventi di chiusura Form. Se quel codice va eseguito alla chiusura del Form puoi inibire anzitutto la chiusura accidentale dalla ControlBox ( X ) e fare in modo che si possa chiudere solo da un pulsante "Chiudi". Ad esempio in questo modo : 1. Creo una var boolean di controllo nella Classe Form : Codice:
Public Class Form1
Private chiudiFormOk As Boolean = False
...
...
Codice:
Private Sub Form1_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
If chiudiFormOk = False Then e.Cancel = True
End Sub
Codice:
'...
'esegui codice...
'...
chiudiFormOk = True
Me.Close()
|
|
|
|
|
|
|
#6 |
|
Junior Member
Iscritto dal: Mar 2009
Messaggi: 13
|
grazie del suggerimento e della spiegazione
|
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 20:20.




















