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

eventi su textbox

  1. #1
    gnappi non è in linea Scolaretto
    Buongiorno a tutti.
    Oggi vorrei risolvere questo problema:
    ho alcune textbox che sotto l'evento leave diminuiscono il valore contenuto di X.Quindi,se la textbox contiene 500 viene abbattuto a 450,per esempio.
    Questo evento però deve verificarsi solo al primo passaggio,mentre NON deve verificarsi nel caso in cui ripassi sulla textbox per qualsiasi ragione,altrimenti avrei ulteriori abbattimenti.
    Penso che la soluzione potrebbe essere che l'evento si verifichi solo nel caso che il valore della textbox venisse modificato,ma non so proprio come fare!
    Grazie per qualsiasi vostro suggerimento.

    Questo il codice da cui parto:
        Private Sub e1_1_Leave(sender As Object, e As EventArgs) Handles e1_1.Leave, e1_2.Leave, ecc.
    ....omissis...
            If sender Is e1_1 Or sender Is e1_2 Or sender Is e2_1 Or sender Is e30_1 Then
                If Val(e1_1.Text) + Val(e1_2.Text) + Val(e2_1.Text) + Val(e3.Text) > 15493.71 Then
                    e2_0.Text = "X"
                    Me.avvertenze.Text += "La spese sanitarie di cui alle righe E1,E2,E3 sono maggiori di 15.493,71 e pertanto sono state ripartite in 4 rate a decorrere dall'anno fiscale 2020." & ControlChars.CrLf
                Else
                    If sender Is e1_2 And Val(e1_2.Text) > 0 Then
                        e1_2.Text = Math.Round(cdbl(e1_2.Text) - 129.11)
                    End If
                    If sender Is e2_1 And Val(e2_1.Text) > 0 Then
                        If Val(e2_1.Text) > 6197.48 Then
                            e2_1.Text = 6197
                            e2_1.Text = Math.Round(CDbl(e2_1.Text - 129.11))
                        End If
                    End If
                End If
            End If
    
    Ultima modifica di gnappi; 06-06-2021 15:58 

  2. #2
    Non devi usare < > per i tag code ma le parentesi quadre [ ]

    Comunque usa l'evento Validated
    Ultima modifica di AntonioG; 06-06-2021 12:23 
    ℹ️ Leggi di più su AntonioG ...

  3. #3
    Sgrubak non è in linea Scribacchino
    Non userei un gestore unico per tutte le textbox. Piuttosto una Sub da richiamare all'occorrenza. Anche perché tu sommi direttamente, senza nemmeno controllare quel che c'è dentro, col rischio di sollevare eccezioni che non vedo son gestite.

    Eviteresti anche il dover controllare due o tre volte chi è il sender.

    Infine potresti gestire facilmente un flag in ciascun evento di ciascuna textbox per farlo eseguire una sola volta.

  4. #4
    L'avatar di Brontolo
    Brontolo non è in linea Very Important Person
    Se associ l'evento Leave a tutte le TextBox non ha senso che poi diversifichi il codice in funzione di qual è il sender. Usa gestori di evento separati per textbox che devono avere un comportamento diverso.
    A parte ciò, sei sicuro che sia una buona idea quella di cambiare il valore della TextBox nell'evento Leave, anche se soltanto una volta? Forse sarebbe più chiaro lasciare il valore originale e mostrare il valore decurtato della franchigia in un controllo separato.
    ℹ️ Leggi di più su Brontolo ...

  5. #5
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da Brontolo Visualizza il messaggio
    Se associ l'evento Leave a tutte le TextBox non ha senso che poi diversifichi il codice in funzione di qual è il sender. Usa gestori di evento separati per textbox che devono avere un comportamento diverso.
    A parte ciò, sei sicuro che sia una buona idea quella di cambiare il valore della TextBox nell'evento Leave, anche se soltanto una volta? Forse sarebbe più chiaro lasciare il valore originale e mostrare il valore decurtato della franchigia in un controllo separato.
    Grazie.
    Per la prima parte delle tua giuste osservazioni, ti evidenzio che in una parte di codice non pubblicata,tutte le textbox dell'evento leave vengono prima arrotondate ad una parte intera e poi (ecco perchè i sono stato costretto a diversificare il sender) sottoposte ad altri processi individuali.
    Per la seconda parte,ti rappresento che il mod.730 richiede espressamente che venga visualizzato immediatamente il valore decurtato a cui applicare poi (in una successiva elaborazione-730/3) il 19%.
    Faccio comunque tesoro della tue affermazioni.Grazie ancora.

  6. #6
    @gnappi ... Hai letto quello che ti ho detto sui tag CODE da modificare?
    Ultima modifica di AntonioG; 06-06-2021 13:52 
    ℹ️ Leggi di più su AntonioG ...

  7. #7
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da AntonioG Visualizza il messaggio
    @gnappi ... Hai letto quello che ti ho detto sui tag CODE da modificare?
    Scusa.Non avevo capito che avrei comunque dovuto modificare il post. Ora l'ho appena fatto.
    A proposito di validated...grazie del suggerimento. Ci sto proprio ora provando.Se ci dovessi riuscire (speriamo!!) te ne darò nota.

  8. #8
    gnappi non è in linea Scolaretto
    Quote Originariamente inviato da gnappi Visualizza il messaggio
    Scusa.Non avevo capito che avrei comunque dovuto modificare il post. Ora l'ho appena fatto.
    A proposito di validated...grazie del suggerimento. Ci sto proprio ora provando.Se ci dovessi riuscire (speriamo!!) te ne darò nota.
    Mi pare di aver verificato che l'evento validating si verifica DOPO l'evento leave e quindi non è funzionale rispetto al mio problema.Tutto ciò lo dico dall'alto della mia ignoranza.

  9. #9
    L'avatar di gibra
    gibra non è in linea Very Important Person
    Quote Originariamente inviato da gnappi Visualizza il messaggio
    Questo evento però deve verificarsi solo al primo passaggio,mentre NON deve verificarsi nel caso in cui ripassi sulla textbox per qualsiasi ragione,altrimenti avrei ulteriori abbattimenti.
    Potresti sfruttare la proprietà TAG del textbox in cui memorizzi il valore 'al primo passaggio', dopo di ché nei passaggi successivi prima di qualsiasi ricalcolo verifiche se la proprietà TAG contiene qualcosa ed in tal caso non applichi di nuovo il ricalcolo.
    ℹ️ Leggi di più su gibra ...

  10. #10
    gnappi non è in linea Scolaretto
    Ho trovato questa soluzione,ma non mi soddisfa per niente:
    ho creato due variabile pubbliche
    -con ENTRATA (in evento enter) memorizzo il valore della textbox prima dell'evento leave
    -con USCITA (in evento leave) memorizzo il valore della textbox dopo l'evento leave
    Sul raffronto di queste due variabiledecido se far decurtare o meno la textbox.
    Funziona, ma attendo da voi migliori suggerimenti!

+ Rispondi al messaggio
Pagina 1 di 2 12 ultimoultimo

Potrebbero interessarti anche ...

  1. Somma due textbox totale terza textbox
    Da freddy60 nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 20-06-2020, 16:21
  2. TextBox e Eventi
    Da Alex22 nel forum Visual Basic .Net
    Risposte: 2
    Ultimo Post: 18-01-2012, 19:05
  3. Gli eventi in c#
    Da sanfra nel forum C#
    Risposte: 2
    Ultimo Post: 05-11-2009, 18:40
  4. [VB6] Eventi
    Da cfava nel forum Visual Basic 6
    Risposte: 0
    Ultimo Post: 29-11-2007, 15:11
  5. Eventi in C#
    Da kikko nel forum C#
    Risposte: 1
    Ultimo Post: 08-04-2005, 12:53