Καλώς ορίσατε στο dotNETZone.gr - Σύνδεση | Εγγραφή | Βοήθεια
σε

 

Αρχική σελίδα Ιστολόγια Συζητήσεις Εκθέσεις Φωτογραφιών Αρχειοθήκες

Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

Îåêßíçóå áðü ôï ìÝëïò Panos Kousidis. Τελευταία δημοσίευση από το μέλος Panos Kousidis στις 15-05-2006, 16:06. Υπάρχουν 6 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  14-05-2006, 16:36 12651

    Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

    Έχω το εξής πρόβλημα: Έχω σε μια φόρμα αρκετά controls με "Validated" events. Εάν όμως διορθώσω το περιεχόμενο ενός control και χωρίς να πάρω από πάνω του το focus και πατήσω Χ να κλείσει η φόρμα, το event Validated δεν ενεργοποιείται. Τι μπορώ να κάνω γι' αυτό;
    Panos
  •  14-05-2006, 17:13 12652 σε απάντηση της 12651

    Απ: Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

    Μια απλή λύση είναι να βάλεις τους ελέγχους που γίνονται κατά το validation σε ξεχωριστές ρουτίνες που θα καλούνται από το Validate event του ανάλογου control αλλά και από το Closing event της φόρμας.
    Vir prudens non contra ventum mingit
  •  15-05-2006, 08:10 12662 σε απάντηση της 12652

    Απ: Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

    Αντί να βάζεις τά Events τών Controls στην Validated δοκίμασε να τά βάλεις στην Validating και τότε θα δείς ότι πρώτα εκτελείται το event σου και κατόπιν γίνεται Close της φόρμας και άν έχεις περάσει στην System.ComponentModel.CancelEventArgs τιμή Cancel=true δέν εκτελείται το close event της φόρμας.

    Η validated εκτελείται αφού έχει εκτελεστεί η Validating π.χ.(από το HELP του VS)

    Private Sub MyValidatingCode(ByVal sender As Object)

    ' Confirm there is text in the control.

    If sender.Text.Length = 0 Then

    Throw New Exception("Email address is a required field")

    Else

    ' Confirm that there is a "." and an "@" in the e-mail address.

    If sender.Text.IndexOf(".") = -1 Or TextBox1.Text.IndexOf("@") = -1 Then

    Throw New Exception("E-mail address must be valid e-mail address format." + _

    ControlChars.Cr + "For example '[email protected]'")

    End If

    End If

    End Sub

    Private Sub textBox1_Validating(ByVal sender As Object, _

    ByVal e As System.ComponentModel.CancelEventArgs) Handles TextBox1.Validating, TextBox2.Validating

    Try

    MyValidatingCode(sender)

    Catch ex As Exception

    ' Cancel the event and select the text to be corrected by the user.

    e.Cancel = True

    sender.Select(0, sender.Text.Length)

    ' Set the ErrorProvider error with the text to display.

    Me.ErrorProvider1.SetError(sender, ex.Message)

    End Try

    End Sub

    Private Sub textBox1_Validated(ByVal sender As Object, _

    ByVal e As System.EventArgs) Handles TextBox1.Validated, TextBox2.Validated

    ' If all conditions have been met, clear the error provider of errors.

    ErrorProvider1.SetError(sender, "")

    End Sub


    Ιωάννης Μανουσάκης
  •  15-05-2006, 13:19 12676 σε απάντηση της 12651

    Απ: Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

    Βασικά έχω δομήσει τη φόρμα ως εξής:

    Έχω καμιά 20αριά textboxes όπου στο Validating Event κάνω έλεγχο εάν ο χρήστης έδωσε αποδεκτές τιμές αλλιώς κάνω e.cancel = True.
    Και αφού έχει δώσει αποδεκτές τιμές πηγαίνει στο Validated και κάνει update σε μια βάση δεδομένων.

    Δηλαδή όταν είσαι σε ένα textbox και πατήσεις το X της φόρμας καλείται το Validating αλλά δε συνεχίζει αν όλα πάνε καλά στο Validated; Τι κουφό είναι αυτό...


    Panos
  •  15-05-2006, 13:55 12680 σε απάντηση της 12676

    Απ: Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

    Είναι λίγο περίεργο αυτό που λές γιατί εδώ που το κοιτάζω το Validated event Εκτελέιται πρίν το Closing Event της φόρμας οπότε και δέν μπορώ να αναπαραγάγω αυτό που λές.
    Ιωάννης Μανουσάκης
  •  15-05-2006, 15:57 12718 σε απάντηση της 12680

    Απ: Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

    Αν μιλάς για το Validated event της φόρμας, τότε να σε διορθώσω: Το Validated event του textbox είναι που δεν καλείται.

    Αν εννοούσες το validated του textbox τότε : χμμ πολύ περίεργο


    Panos
  •  15-05-2006, 16:06 12722 σε απάντηση της 12718

    Απ: Πώς καλώ το Validated event του επιλεγμένου αντικειμένου όταν κλείνει η φόρμα;

    Α, το εντόπισα το πρόβλημα. Όντως το validated του textbox καλείται πριν to closing της φόρμας, εκτός αν έχεις καλέσει τη φόρμα με .ShowDialog. Τότε δεν καλείται καθόλου και σε αυτή την περίπτωση έχω πέσει... Μάλλον θα το κάνω με .Show και απλά θα κάνω enable και disable τη φόρμα που την κάλεσε.
    Panos
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems