Visualizzazione dei risultati da 1 a 6 su 6
  1. #1

    [VB.NET] Validating OK? Passa al prossimo controllo

    CIao ho una classe che gestisce una textBox mia molto particolare.
    Nell' evento validating (mentre viene validata la textBox) ho questo codice :

    codice:
    Private Sub TextBox1_Validating(ByVal sender As Object, ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating
            If Me.txtValidate Then
                If ErrProv.GetError(TextBox1) = "" Then
                    e.Cancel = False
                Else
                    e.Cancel = True
                End If
            End If
        End Sub
    Va benissimo ma se aggiungo questa cosa :

    codice:
    ... ...
            If Me.txtValidate Then
                If ErrProv.GetError(TextBox1) = "" Then
                    e.Cancel = False
    textbox1.text = String.format("{0:N2}",textbox1.text)
    La formattazione avviene senza eccezioni ma il problema é che non si sposta il focus ...
    In pratica mi resta il focus su quella textBox, credo perché assegno un nuovo valore alla proprietà text ..

    Soluzioni?

  2. #2
    In VB.NET esistono due metodi:
    -SelectNextControl ti permette di spostarti in ordine di TabIndex, con la possibilità di selezionare il tipo di oggetto.
    -Select si sposta nel precedente o successivo oggetto numero TabIndex.
    Inserisci il comando dopo la riga
    textbox1.text = String.format("{0:N2}",textbox1.text)

  3. #3
    Grazie scusa ma questa metodo mi é sfuggito di vista.

    Merci!!

  4. #4
    Case EnumDataType.Number
    TextBox1.Text = String.Format("{0:N2}", CInt(TextBox1.Text))
    TextBox1.SelectNextControl(Me.TextBox1, True, False, True, True)


    Ma nada ...

  5. #5
    Quello che hai scritto è corretto.
    C'è quindi qualcosa che non va nella logica.
    Come primo impatto mi vengono in mente 2 strade da verificare:
    1) La proprietà "CausesValidation" deve essere impostata a True, altrimenti non esegue il codice (ma se dici che senza le righe aggiunte andava, credo sia già True)
    2) Cambiando il contenuto di TextBox1 si verifica dinuovo l'evento TextBox1_Validating... il programma dove continua? Non credo dalla riga successiva, ma dall'inizio (confesso che non mi è stato mai chiaro come concetto, quando si verifica 2 volte lo stesso evento).
    La seconda volta quindi, essendoci un IF potrebbe non passare per TextBox1.SelectNextControl. Prova a metterlo quindi fuori dall'IF, tanto in ogni caso dovresti passare comunque ad un altro controllo.

  6. #6
    Si credo anche io sia di logica.
    Scusa ma non mi era arrivata la notifica di questa risposta ...


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.