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

 

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

Μορφοποίηση σε TextBox

Îåêßíçóå áðü ôï ìÝëïò mdtgr. Τελευταία δημοσίευση από το μέλος mdtgr στις 27-06-2006, 08:10. Υπάρχουν 11 απαντήσεις.
Ταξινόμηση Δημοσιεύσεων: Προηγούμενο Επόμενο
  •  15-06-2006, 00:35 14028

    Μορφοποίηση σε TextBox

    Είμαι αρχάριος σε θέματα προγραμματισμού και ξεκίνησα με VB.NET τη δημιουργία μιας πολύ μικρής εφαρμογής. Αφού διάβασα αρκετά και έψαξα περισσότερο και αφού προβληματίστηκα πολύ για το αν πρέπει να θέσω την ερώτηση ή να ψάξω κι' άλλο, ήρθε η στιγμή να την υποβάλλω για να προχωρήσω κιόλας παρακάτω.

    Έχω λοιπόν δύο TextBoxes στα οποίο ο χρήστης θα καλείται να βάζει τιμές η οποίες θα χρησιμοποιούνται από τον κώδικα για υπολογισμούς και το αποτέλεσμα θα εμφανίζεται σε ένα τρίτο TextBox. Πως μπορώ να μορφοποιώ τις τιμές να εμφανίζουν χιλιάδες ή/και δεκαδικά στα TextBoxes;

    Ξεκίνησα με VB. Είναι καλή επιλογή ή μήπως θα έπρεπε να στρέψω την προσοχή μου αλλού; Ποιές είναι οι τάσεις στην αγορά;

    Επίσης θα ήθελα αν μπορεί κάποιος να μου εξηγήσει τη διαφορά μεταξύ CType και String.Format και που θα μπορούσα να βρίσκω τέτοιου είδους πληροφορίες (Βιβλιογραφία, Internet κ.α.)

    Συγγνώμη για το μέγεθος του post και ευχαριστώ για το χρόνο σας.


    Μάνος Τ.
  •  15-06-2006, 02:37 14029 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Καλώς ήλθες λοιπόν.. Η επιλογή σου για VB.Net είναι πολύ καλή..Δεν παίζει και τόσο τεράστιο ρόλο η γλώσσα στο .Net γενικώς, αρκεί να υπάρχει καλός compiler και να βγάζει καλό IL code (πχ υπάρχει μέχρι Clipper.Net).

    H μορφοποιήση θα γίνει με την String.Format, εφόσον θέλεις να το δείξεις σε TextBox..Στο MSDN (http://msdn.microsoft.com) θα βρείς πληροφορίες και άπειρα παραδείγματα για το πως μπορείς να κάνεις κάτι στο .Net, εύκολα και απλά..

    Η CType και η String.Format, είναι δυο τελείως διαφορετικά πράγματα..Η μια κάνει Convert απο ενα type σε ένα άλλο (cast δλδ), ακόμα και εαν αυτό δεν ειναι ενα build in type (string,integer,boolean Κλπ) αλλα είναι ενα custom type (object).Μπορείς αντί για την CType σε ορισμένες περιπτώσεις να χρησιμοποιήσεις και την class Convert, η οποία έχει μετατροπές απο όλους τους build in τύπους σε οποιοδήποτε άλλο build in τύπο.

    Τώρα, βιβλιογραφία θα κοιτάξεις απο Microsoft Press έχει πολύ καλά βιβλία, για Online γενικώς, διάβαζε άρθρα στο CodeProject.com και φυσικά στο αγαπημένο μας MSDN.
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  15-06-2006, 09:53 14031 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Ευχαριστώ για την απάντησή σου και την σωστή παραπομπή σου στο MSDN, όμως παρά τις προσπάθειές μου να βρω την απάντηση εκεί δεν τα κατάφερα. Ίσως φταίει το ότι είμαι αρχάριος και δεν καταλαβαίνω πάντα τις λύσεις που προτείνονται από τα παραδείγματα αφού πάντα σε αυτά χρησιμοποιούνται μεταβλητές που παίρνουν τιμές μέσα από τον κώδικα και όχι από κάποιο TextBox. Δεν ξέρω αν ήμουν αρκετά σαφής προκειμένου όμως να μην κουράσω άλλο παραθέτω τον εξής κώδικα:

    Private Sub txtBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBox1.LostFocus

    Me.txtBox1.Text = String.Format("{0:N}", Me.txtBox1.Text)

    End Sub

    και ρωτώ.

    Θα έπρεπε ή όχι το ποσό πχ 1000 μετά το LostFocus να εμφανίζεται σαν 1.000; Αν δεν θα έπρεπε ποια είναι η σωστή σύνταξη; Είναι απαραίτητη η χρήση μεταβλητής; Η χρήση μεταβλητών είναι παντού απαραίτητη στον κώδικα ή είναι απαραίτητη κάτω από συγκεκριμένες συνθήκες και απαιτήσεις της εφαρμογής;


    Μάνος Τ.
  •  15-06-2006, 13:04 14042 σε απάντηση της 14031

    Απ: Μορφοποίηση σε TextBox

    Ο κώδικάς σου είναι σωστός..Το Format String είναι λάθος.. το Ν θα έπρεπε να είναι μικρό, και όχι κεφαλαίο, δηλαδή "{0:n}".
    Η χρήση μεταβλητής δεν είναι απαραίτητη στην συγκεκριμένη περίπτωση.Θα ήταν απαραίτητη ενα πχ, διάβαζες το κείμενο απο ένα .txt αρχείο και ήθελες να απο εμφανίσεις στο TextBox (το οποίο θα το είχες δηλώσει ως multiline).Εκεί θα χρησιμοποιούσες μεταβλητές για διάφορους λόγους.
    Ειναι καθαρά δικό σου θέμα αλλα και θέμα απαιτήσεων όπως είπες, για το πότε θα χρησιμοποιήσεις μεταβλητές.

    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  15-06-2006, 13:07 14043 σε απάντηση της 14042

    Απ: Μορφοποίηση σε TextBox

    Επίσης ξέχασα, ρίξε μια ματιά εδώ http://blog.stevex.net/index.php/string-formatting-in-csharp/

    Έχει ωραία παραδείγματα για την formatting γενικώς
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  16-06-2006, 10:22 14060 σε απάντηση της 14042

    Απ: Μορφοποίηση σε TextBox

    Σε ευχαριστώ και πάλι για τον χρόνο σου αλλά δυστυχώς κατά ένα περιέργο τρόπο δεν λειτουργεί σωστά. Δεν κάνει μορφοποίηση στη LostFocus ούτε στο TextBox του παραδείγματος ούτε σε νέο TextBox. Δεν μπορώ να καταλάβω τι μπορεί να φταίει. Δεν ξέρω αν έχεις εσύ ή κάποιος άλλος φίλος άλλη συμβουλή οπότε προτείνω να μείνει μέχρι τη Δευτέρα ανοιχτό το post και το κλείνουμε μετά.

    Ευχαριστώ.


    Μάνος Τ.
  •  16-06-2006, 12:42 14072 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Είσαι σίγουρος οτι κάνει χάνει το focus το control?
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  17-06-2006, 00:39 14086 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Θεωρητικά το χάνει. Έχω βάλει breakpoint και στο event σταματάει κανονικά. Δεν ξέρω αν φτάνει αυτό και απο που αλλού θα μπορούσα να ελέγξω ότι σίγουρα χάνει το focus.
    Μάνος Τ.
  •  17-06-2006, 11:39 14091 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Δώσε μου λίγο μια μέρα καιρό γιατι δεν έχω VS εδώ για να το δοκιμάσω κι εγώ.. Κανονικά θα έπρεπε να παίζει χωρίς κανένα πρόβλημα..
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  17-06-2006, 21:15 14100 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Και μια και δυό και όσες θες. ;))
    Μάνος Τ.
  •  23-06-2006, 15:12 14200 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Το πράγμα ειναι πιο απλό απο ότι έμοιαζε.. εφόσον πας να κάνεις format αριθμό.. θα πρέπει να περάσεις αριθμό σαν parameter kαι όχι string..Απορώ πως μου ξέφυγε Stick out tongue

    Άρα ο κώδικας είναι:

    Private Sub txtBox1_LostFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles txtBox1.LostFocus

    Me.txtBox1.Text = String.Format("{0:n}", Convert.ToInt32(Me.txtBox1.Text))

    End Sub
    Παναγιώτης Κεφαλίδης

    "Για να επιτύχεις, θα πρέπει το πάθος σου για την επιτυχία να είναι μεγαλύτερο απο τον φόβο σου για την αποτυχία"

    Οι απαντήσεις παρέχονται για συγκεκριμένες ερωτήσεις και χωρίς καμιά εγγύηση. Παρακαλώ διαβάστε τους όρους χρήσης.
  •  27-06-2006, 08:10 14253 σε απάντηση της 14028

    Απ: Μορφοποίηση σε TextBox

    Τώρα λειτουργεί σωστά!!! :)))))

    Ευχαριστώ πολύ για το χρόνο σου!
    Μάνος Τ.
Προβολή Τροφοδοσίας RSS με μορφή XML
Με χρήση του Community Server (Commercial Edition), από την Telligent Systems