Visualizzazione dei risultati da 1 a 6 su 6
  1. #1
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    170

    [VB.NET] Sapere se sono stati modificati i dati nel form

    Il mio problema è questo: ho un form in cui carico i dati presi da un db, e vorrei sapere se alla chiusura del form questi dati sono stati modificati o no, in modo tale che so se li devo salvare o meno.
    Che procedura si utilizza in questi casi? Si fa un controllo per vedere se c'è stato un evento change nelle textbox, si confrontano i dati attuali con quelli esistenti, o cos'altro?!?!

    Grazie.

  2. #2
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Sai che in VB.NET puoi associare lo stesso evento a più controlli?

    Per esempio, se hai text1 e text2 e vuoi sapere se uno dei due è stato modificato, puoi fare così:

    codice:
     
    dim cambiato as boolean
    
    Private sub Controlla (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles text1.Change, text2.Change
      cambiato=true
    End sub
    In questo modo hai gestito il change di text1 e text2 con un solo evento.
    E' ovvio che puoi farlo con tutta una serie di controlli che implementino l'evento change....
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  3. #3
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    170
    Questa è la soluzione che cercavo!
    Ho un unico appunto: io ho circa un centinaio di controlli, tra textbox, combobox etc., quindi volevo sapere se c'è un modo automatizzato, tipo ciclarli ed aggiungerli, altrimenti mi toccherà scriverli uno ad uno, e sicuramente sarà una cosa lenta e noiosa

    Grazie comunque per il tuo aiuto!

  4. #4
    Moderatore di CMS L'avatar di kalosjo
    Registrato dal
    Jul 2001
    residenza
    In culo alla luna
    Messaggi
    1,999
    Originariamente inviato da xmaxfane
    Questa è la soluzione che cercavo!
    Ho un unico appunto: io ho circa un centinaio di controlli, tra textbox, combobox etc., quindi volevo sapere se c'è un modo automatizzato, tipo ciclarli ed aggiungerli, altrimenti mi toccherà scriverli uno ad uno, e sicuramente sarà una cosa lenta e noiosa

    Grazie comunque per il tuo aiuto!
    Scusate i puntini di sospensione...... La verità è che non ho argomenti....

  5. #5
    Originariamente inviato da xmaxfane
    Questa è la soluzione che cercavo!
    Ho un unico appunto: io ho circa un centinaio di controlli, tra textbox, combobox etc., quindi volevo sapere se c'è un modo automatizzato, tipo ciclarli ed aggiungerli, altrimenti mi toccherà scriverli uno ad uno, e sicuramente sarà una cosa lenta e noiosa

    Grazie comunque per il tuo aiuto!
    Certo, basta aggiungere un Handler con AddHandler all'avvio del form, usando un ciclo for.
    codice:
    For Each C As Control In Me.Controls
      AddHandler C.TextChanged, AddressOf Controlla
    Next
    Non mi ricordo se ogni controllo dispone dell'evento, ma puoi anche eseguire un cast verso gli oggetti TextBox e ComboBox se serve.

  6. #6
    Utente di HTML.it
    Registrato dal
    Aug 2005
    Messaggi
    170
    Ti ringrazio!
    E' proprio quello che mi serviva... per non impazzire ad aggiungerli tutti a mano!!!
    Appena possibile provo subito a mettere in pratica il tuo suggerimento.

    Grazie per il valido aiuto!

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