![]() |
Όριο γραμμων σε TextBox Καλημέρα, Σε μια textbox με scrollbarsvertical θέλω να ελέγχω το πλήθος των γραμμών της textbox Π.χ. μόλις συμπληρωθούν 5 γραμμές να μη σου επιτρέπει να γράφεις άλλο! Ευχαριστώ για όποια βοήθεια |
Καλησπέρα Γιώργο, Αφού θέσεις τις ιδιότητες MultiLine=True και EnterKeyBehavior=True του textbox, στο γεγονός του KeyDown δοκίμασε το εξής: Κώδικας: Private Sub TextBox1_KeyDown(ByVal KeyCode As MSForms.ReturnInteger, ByVal Shift As Integer) |
1 Συνημμένο(α) Καλησπέρα Χρήστο, Σε' Ευχαριστώ για την άμεση απάντηση, δεν ξέρω που κάνω λάθος και δεν δουλεύει, ανεβάζω συνημμένο |
2 Συνημμένο(α) Γιώργο, Το textbox έχει μια ιδιότητα (EnterKeyBehavior), η οποία αν είναι True δίνει τη δυνατότητα στο κουμπί Enter να δημιουργεί νέα γραμμή, όπως στους κειμενογράφους. Απλά δεν την είχες θέσει σε True. Δοκίμασε το συνημμένο να δεις αν λειτουργεί τώρα. |
Καλησπέρα Χρήστο, επειδή κάποιοι χρήστες μπορεί να «ξεχάσουν» τις ιδιότητες που απαιτούνται, γράψε ό, τι χρειάζεται στο Initialize της φόρμας, και όλα καλά. |
Δείτε και μια ακόμα λύση, στο Change του TextBox. Κώδικας: Option Explicitεμφανίζει το κείμενο με πρώτο γραμμα κάθε λέξης κεφαλαίο. |
1 Συνημμένο(α) Σπύρο, Ναι, όντως έχεις δίκιο! Καλύτερα με τη φόρτωση της φόρμας να τροποποιούνται οι απαιτούμενες ιδιότητες των ελεγκτηρίων. Γιώργο, Μια μικρή παραλλαγή του προηγούμενου αρχείου. Κάθε φορά που φορτώνεται η φόρμα, οι 3 ιδιότητες του textbox που χρειάζεσαι αρχικοποιούνται σύμφωνα με τις ανάγκες σου. |
Χρήστο δοκίμασα το συνημμένο που ανέβασες, και πάλι, μετά το όριο των 5 γραμμών σου επιτρέπει να γράφεις απεριόριστες γραμμές. |
Γιώργο, Τότε χρειάζεσαι τον κώδικα του Σπύρου. Ο δικός μου κώδικας θεωρεί τη νέα γραμμή κάθε φορά που πατάς Enter. |
Καλημέρα, Χρήστο όπως το λες η πρόταση του Σπύρου είναι αυτή ακριβώς που θέλω. Σας Υπέρ Ευχαριστώ και εσένα και το Σπύρο. Να’ είστε καλά, Καλή συνέχεια. |
Για να αποδώσουμε τα του Καίσαρος τω Καίσαρι, να πούμε ότι η λύση του Χρήστου, είναι καλή και δουλεύει αν... Εξήγηση: Η λύση με το συμβάν Change που έδωσα, είναι μια άλλου είδους λύση που θα μπορούσε κανείς να χρησιμοποιήσει. Όμως, αν για κάποιο λόγο, δεν μπορούμε να χρησιμοποιήσουμε το Change, τί θα γίνει; Το σφάλμα με την συνέχεια των γραμμών στον κώδικα του Χρήστου, εμφανίζεται αν, αντί Enter, χρησιμοποιήσει κανείς το Tab πλήκτρο. Αν όμως βάλουμε στο Initialize και Κώδικας: .TabKeyBehavior = FalseΑκόμα θα μπορούσε κανείς να αλλάζει γραμμές με Shift + Enter και να μην έχει στο Initialize, καμία ιδιότητα, αν βάλει στο KeyDown: Κώδικας: If TextBox1.LineCount >= 5 And KeyCode = 13 Or KeyCode = 9 Then KeyCode = 0και να αποφασίσει τι τελικά θα κάνει, αν βέβαια γνωρίζει και τον υπόλοιπο κώδικα της φόρμας, την συμπεριφορά και χρήση του TextBox, του τι θέλει ο χρήστης, αν τον βολεύει πληκτρολόγιο ή ποντίκι...κ.ά πράγματα που δεν γνωρίζουμε. |
Καλησπέρα, Σε’ Ευχαριστώ Σπύρο για άλλη μια φορά για όλες αυτές τις εναλλακτικές λύσεις, Έχεις το χάρισμα να μεταδίδεις τη γνώση με πολύ απλή και κατανοητή περιγραφή. Σε’ Ευχαριστώ πολύ. Να’ σαι καλά. Με εκτίμηση Γιώργος |
Καλή συνέχεια Γιώργο, ευχαριστώ για τα καλά λόγια. |
| Η ώρα είναι 05:50. |
Ms-Office.gr - ©2000 - 2026, Jelsoft Enterprises Ltd.