+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 13

Discussione: Cambiare il codice evento di un pulsante

  1. #1
    CC88 non è in linea Scolaretto
    Post
    87

    Cambiare il codice evento di un pulsante

    Salve a tutti.

    Attualmente ho un form iniziale, il quale ha tre pulsanti "nuova", "duplica", "modifica".

    "Nuova" e "duplica" creano rispettivamente una nuova etichetta vuota da compilare mentre duplica prende l'attuale etichetta, imposta il campo codice vuoto (per creare una nuova etichetta identica alla precedente tranne nel campo codice) mentre "modifica" nella mia intenzione dovrebbe aprire l'etichetta e permettere la modifica di tutti i campi.

    Sia in "Nuova" che "duplica" ho un pulsante "inserisci" che utilizza il codice:

    codice:
    etichettaInsertTableAdapter.Insert(campo1, campo2, ..., campoN)
    Può succedere che l'utente inizi una etichetta, la inserisca nel db e poi la voglia riprendere più avanti. Per questo il tasto "modifica".

    Domanda: come cambio il funzionamento del pulsante "inserisci" in base alla scelta effettuata dall'utente? Non riesco a capirlo o ad avere un idea sulla cosa. Mi potete aiutare? Del tipo, all'inizio dell'evento del pulsante vorrei capire se nel Form1 è stato premuto il pulsante "Nuova" o "Duplica" allora esegui un insert, se è stato premuto "modifica" nel form1, nel pulsante "inserisci" del form2 fai un update?

    Quindi fare un

    codice:
    etichettaTableAdapter.Update(campo1 etc)
    Va bene tipo settare una variabile pubblica alla pressione di uno dei pulsanti e intercettarla nel form2?
    Ultima modifica di CC88; 20-03-2017 08:20 

  2. #2
    patel45 non è in linea Scolaretto
    Post
    173
    Quote Originariamente inviato da CC88 Visualizza il messaggio
    Va bene tipo settare una variabile pubblica alla pressione di uno dei pulsanti e intercettarla nel form2?
    Era proprio il consiglio che stavo per darti, hai provato a farlo ?

  3. #3
    CC88 non è in linea Scolaretto
    Post
    87
    Ciao.

    Si, grazie. Ho provato e funziona correttamente.

    Ho impostato una variabile globale (se è corretto far così, altrimenti se conosci metodo migliore/più pulito):

    codice:
    Public Module GlobalVariables
        Public buttonBehavior As Integer
    End Module
    Premendo il pulsante "Nuova" e "Duplica" buttonBehavior = 0 mentre per "Modifica" buttonBehavior = 1

    Poi quando premo sul pulsante "Inserisci" con uno switch intercetto il valore e cambio di conseguenza quello che fa il pulsante.

  4. #4
    patel45 non è in linea Scolaretto
    Post
    173
    Lascio la parola agli esperti, anche io sono principiante, probabilmente non è necessario un modulo a parte ma basta dichiararlo all'inizio prima delle classi

  5. #5
    Dev-01 non è in linea Scolaretto
    Post
    361
    Per definire una variabile che possa essere modificata anche dall'esterno dell'assembly, oltre che da qualsiasi punto del codice, devi utilizzare il modificatore d'accesso 'Public'.

    Non occorre creare un modulo, non è necessario.

    Inoltre consiglio di studiare il consumo della memoria relativa ai tipi di dato: se ti servono solo due valori puoi utilizzare un boolean, se te ne servono al massimo 256 puoi utilizzare un byte, se hai bisogno di vari stati puoi definire una Enum e memorizzare uno dei suoi valori in una variabile o una proprietà a seconda dell'utilizzo previsto; in alternativa puoi creare un custom button sfruttando quest'ultimo metodo per estendere il controllo button.

    Utilizzare un Integer per impostare pochi valori è uno spreco di risorse.

  6. #6
    CC88 non è in linea Scolaretto
    Post
    87
    Grazie. Si in effetti ieri ho cambiato il tipo di dato in byte, usando solo tre valori.

  7. #7
    jupynet non è in linea Novello
    Post
    40
    Ciao, ma come richiami la funzione per inserire/duplicare o modificare i dati? Fai vedere un po' di codice.
    Una soluzione potrebbe essere quella di aggiungere un parametro alla funzione, in modo da individuare in quale stato siamo...

  8. #8
    CC88 non è in linea Scolaretto
    Post
    87
    Ciao uso i table adapter. Quindi se devo duplicare un etichetta (ovviamente con un nuovo codice prodotto) oppure farla nuova uso un tableadapter.insert mentre se devo modificarla un tableadapter.update...

  9. #9
    jupynet non è in linea Novello
    Post
    40
    Quote Originariamente inviato da CC88 Visualizza il messaggio
    Ciao uso i table adapter. Quindi se devo duplicare un etichetta (ovviamente con un nuovo codice prodotto) oppure farla nuova uso un tableadapter.insert mentre se devo modificarla un tableadapter.update...
    Si, ok, c'è qualcosa che mi sfugge....ma nell'evento click di ogni pulsante (nuovo, duplica, modifica) cosa hai scritto?
    Oppure usi due form, uno dove hai i tre button e un'altro per l'inserimento (con il tasto inserisci)? non ho capito bene...

  10. #10
    CC88 non è in linea Scolaretto
    Post
    87
    Quote Originariamente inviato da jupynet Visualizza il messaggio
    Si, ok, c'è qualcosa che mi sfugge....ma nell'evento click di ogni pulsante (nuovo, duplica, modifica) cosa hai scritto?
    Oppure usi due form, uno dove hai i tre button e un'altro per l'inserimento (con il tasto inserisci)? non ho capito bene...
    Form1 ha tre pulsanti: nuova etichetta, duplica, modifica.

    Ognuno apre Form2, che in base a quello che è stato premuto si presenta in un modo diverso dall'altro.

    Form2 ha due pulsanti inserisci e annulla. Inserisci, se è stato premuto modifica su form1, cambia il tuo text in Modifica e anzichè eseguire un insert come nel caso di nuova e duplica, fa un update.

+ Rispondi al Thread
Pagina 1 di 2 12 ultimoultimo

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi