Questo sito utilizza cookies solo per scopi di autenticazione sul sito e nient'altro. Nessuna informazione personale viene tracciata. Leggi l'informativa sui cookies.
Username: Password: oppure
Visual Basic 6 - Messaggio all'uscita del form tipo
Forum - Visual Basic 6 - Messaggio all'uscita del form tipo "Non hai salvato,vuoi salvare prima di uscire?"

Pagine: [ 1 2 3 ] Precedente | Prossimo
Avatar
best_king (Normal User)
Rookie


Messaggi: 25
Iscritto: 09/11/2012

Segnala al moderatore
Postato alle 21:40
Venerdì, 09/11/2012
Salve a tutti,sto creando un programma gestionale in vb e access;ho inserito un datagridview per l'inserimento dei dati nel database,dopo di che ho creato due pulsanti :salva e elimina,con i rispettivi codici.
Allora io vorrei  che se l'utente ha inserito dati nella datagridview  però si è dimenticato di salvare ,vorrei che all'uscita del form il software capisse che non ha salvato e gli farebbe uscire un messaggio con scritto "non hai salvato,vuoi farlo adesso si o no?COme posso fare ?Grazie a tutti in anticipo

Ultima modifica effettuata da best_king il 09/11/2012 alle 22:06
PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 23:21
Venerdì, 09/11/2012
Ciao
Io di solito creo una variabile, magari di tipo enum, che tiene conto dello stato del programma.. Ad esempio, puoi avere "nuovo", "modificato", "salvato", "in chiusura", ecc.
Nel tuo caso, devi settare lo status "modificato" come istruzione in un evento collegato all'inserimento dati nella tua datagrid.
Se l'utente salva, imposti lo status su "salvato".
Quando l'utente preme "esci", verifichi lo status e fai apparire una messagebox se è necessario salvare le motifiche.

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 0:46
Sabato, 10/11/2012
http://lmgtfy.com/?q=Funzione+MsgBox(Visual+Basic)&l=1

Devi imparare...prima di postare, devi cercare un po' su Google!

Ultima modifica effettuata da LittleHacker il 10/11/2012 alle 0:47
PM Quote
Avatar
best_king (Normal User)
Rookie


Messaggi: 25
Iscritto: 09/11/2012

Segnala al moderatore
Postato alle 13:42
Sabato, 10/11/2012
Salve e grazie a tutti per le risposte;allora per Renny...ho trovato questo evento che verifica se i valori delle celle sono cambiati,questo
Private Sub CellValueChanged(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) _
    Handles DataGridView1.CellValueChanged

    End Sub
Però non so come continuare,mi puoi dare una mano se no disturbo?Grazie.

PM Quote
Avatar
LittleHacker (Member)
Guru


Messaggi: 1033
Iscritto: 28/04/2009

Segnala al moderatore
Postato alle 14:36
Sabato, 10/11/2012
Esempio:

Codice sorgente - presumibilmente VB.NET

  1. Dim save As Boolean = False
  2.  
  3. Private Sub CellValueChanged(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) _
  4.     Handles DataGridView1.CellValueChanged
  5.               save = False
  6.     End Sub
  7.  
  8. Private Sub Form1_Closing(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) _
  9.     Handles Form1.FormClosing 'Non mi ricordo bene
  10.               If(save = False) Then
  11.                   'Messaggio
  12.               Else
  13.                    'Chiudi
  14.               End If
  15.     End Sub



Ma usi VB o VB.NET, perché se usi VB.NET, hai sbagliato sezione, per questa volta fa niente, ma la prossima posta nella sezione giusta :k:

Ultima modifica effettuata da LittleHacker il 10/11/2012 alle 14:37
PM Quote
Avatar
best_king (Normal User)
Rookie


Messaggi: 25
Iscritto: 09/11/2012

Segnala al moderatore
Postato alle 0:52
Domenica, 11/11/2012
Ciao,grazie er la risposta adesso lo provo e poi vi faccio sapere....scusa la prossima volta posterò nella sezione giusta...grazie ancora:k:

Ultima modifica effettuata da best_king il 11/11/2012 alle 0:56
PM Quote
Avatar
best_king (Normal User)
Rookie


Messaggi: 25
Iscritto: 09/11/2012

Segnala al moderatore
Postato alle 14:42
Domenica, 11/11/2012
Ciao,l'ho appena provato ma non funziona, in pratica anche se non modifico nessuna cella mi esce il messaggio che mi dovrebbe uscire soltanto se la modifico..secondo me non funziona bene l'evento cellvaluechange perchè non rileva se il valore è stato modificato o meno....cosa posso fare?grazie ..

PM Quote
Avatar
Renny (Normal User)
Expert


Messaggi: 231
Iscritto: 30/07/2011

Segnala al moderatore
Postato alle 20:12
Domenica, 11/11/2012
Ciao..
Uhm.. forse perché anche quando carica il dati col binding, viene comunque scatenato l'evento..
Prova a valutare di usare qualche altro evento, il datagrid ne ha tanti.. magari puoi intercettare quando utente clicca su una cella, che in questo modo riceve il focus e diventa "editabile"...

PM Quote
Avatar
best_king (Normal User)
Rookie


Messaggi: 25
Iscritto: 09/11/2012

Segnala al moderatore
Postato alle 21:36
Domenica, 11/11/2012
ciao,grazie per la pazienza,ho provato anche altri eventi come il doppioclick sulla cella per editarla,ma niente..poi mi sono accorto dell'errore della variabile save,che quando veniva inizializzata era gia false,cioè sempre per questo,quindi l'ho inizializzata a true e va erfettamente...
Codice sorgente - presumibilmente VB.NET

  1. Dim save As Boolean = True
  2.  
  3.  
  4.     Private Sub DataGridView1_CellMouseClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGridView1.CellMouseClick
  5.         save = False
  6.     End Sub
  7.  
  8.     Private Sub Form1_FormClosing(ByVal sender As System.Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles MyBase.FormClosing
  9.         Dim msg1 As MsgBoxResult
  10.         If (save = False) Then
  11.             msg1 = MsgBox("Vuoi uscire senza salvare?", MsgBoxStyle.YesNo, "Uscita")
  12.         Else
  13.             'Chiudi
  14.         End If
  15.     End Sub


Spero sia di aiuto ad altri...grazie ancora a tutti..ciaooo

Ultima modifica effettuata da best_king il 11/11/2012 alle 21:50
PM Quote
Pagine: [ 1 2 3 ] Precedente | Prossimo