Theoxaris Δημοσ. 8 Φεβρουαρίου 2002 Δημοσ. 8 Φεβρουαρίου 2002 Θέλω σε κάθε πεδίο σε προγραμμα με VB όταν ο cursor είναι στο πεδίο αυτο να αλλάζει το background του πεδίου από άσπρο να γίνεται π.χ. κόκκινο!!<p>Δηλαδή π.χ. όταν ο cursor παει σε ένα πεδίο για να γραψω αυτό το πεδίο να γίνεται άλλο χρώμα. Όμως είναι πολυ δυσκολο σε πρόγραμμα με πολλά πεδία να γραφω κώδικα ξανά και ξανά.<p>Υπάρχει τρόπος να γραφτει κάπου και με τη χρήση κάποιας παραμέτρου που θα χρησιμοποιώ σε κάθε πεδίο να γίνεται η ίδια δουλειά ?????<p>Ευχαριστω πολύ γισ όποια βοήθεια !!!
Dvs Δημοσ. 9 Φεβρουαρίου 2002 Δημοσ. 9 Φεβρουαρίου 2002 mia dieukrinisi: otan patisei dexi click mesa sto editbox i apla otan paei to mouse apo pano ?
bandito Δημοσ. 9 Φεβρουαρίου 2002 Δημοσ. 9 Φεβρουαρίου 2002 Απο ότι κατάλαβα εγώ εννοεί όταν το text box έχει το focus. Μπορείς να το κάνεις αυτό δηλώνοντας όλα τα πεδία σαν ένα control array και βάζοντας το εξής κώδικα στις μεθόδους GotFocus και LostFocus.<p><blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr><pre> Private Sub Text1_GotFocus(Index As Integer) for n=0 to arithmos_pediwn Text1(n).BackColor = vbWhite next n Text1(Index).BackColor = vbRed End Sub<p> Private Sub Text1_LostFocus(Index As Integer) Text1(Index).BackColor = vbWhite End Sub </pre><hr></blockquote><p>Σαν arithmos_pediwn μπορείς να βάλεις μια constant μεταβλητή με τον αριθμό των πεδίων που έχει κάθε φόρμα. Αν αυτό δεν είναι γνωστό απο την αρχή τότε μπορείς να βάλεις ένα μικρό module που θα μετράει πόσα text box έχει κάθε φορά (αν δεν ξέρεις πως γίνεται αυτό, κάνε post και θα στο γράψω και αυτό). Επίσης μπορείς για να γλιτώσεις το for loop, να κρατάς κάθε φορά ποιο textbox ήταν αναμένο πρίν και να σβήνεις μόνο αυτό.<p>[ 08-02-2002: Το μήνυμα επεξεργάστηκε από: bandito ]<p>[ 08-02-2002: Το μήνυμα επεξεργάστηκε από: bandito ]</p>
Theoxaris Δημοσ. 9 Φεβρουαρίου 2002 Μέλος Δημοσ. 9 Φεβρουαρίου 2002 Nai bandito, gia to Focus anaferthika, sygnwmi gia tin asafeia.<p>Tha ithela na mou grapseis kai gia to module an den sou einai kopos. Eyxaristw poly !!
Dvs Δημοσ. 9 Φεβρουαρίου 2002 Δημοσ. 9 Φεβρουαρίου 2002 auto ok. elpizo na min theleis otan to mouse paei pano apo ena textbox .<p>bandito : gia grapsto mia [pos metrame ta textbox pano se mia form]
bandito Δημοσ. 9 Φεβρουαρίου 2002 Δημοσ. 9 Φεβρουαρίου 2002 <blockquote><font size="1" face="Verdana, Helvetica, sans-serif">code:</font><hr><pre> Function CountTextBoxes(frm As Form) as integer<p>Dim ctl As Control Dim ctl_type As String<p>For Each ctl In frm.Controls ctl_type = TypeName(ctl) If ctl_type = "TextBox" Then CountTextBoxes=CountTextBoxes+1 Next<p>End Function </pre><hr></blockquote><p>Και μια συμβουλή. Για να βρίσκετε τις απαντήσεις που θέλετε γρήγορα, πάρτε το msdn library που δίνει η Microsoft. Έχει πάρα πολλά snippets, και απαντήσεις σχεδόν για τα πάντα.<p>Υ.Γ Ο κώδικας αυτός είναι πολύ καλός για να καθαρίζεις πεδία ή να δίνεις αρχικές τιμές, χωρίς να χρειάζεται να τα προσπελάσεις 1-1.<p>[ 09-02-2002: Το μήνυμα επεξεργάστηκε από: bandito ]</p>
Theoxaris Δημοσ. 9 Φεβρουαρίου 2002 Μέλος Δημοσ. 9 Φεβρουαρίου 2002 Ta pedia pws tha ta dhlwsw san control array ?? Gia des einai swsto ?<p>Private Sub Text(Index As Integer) Text(1) = onoma_text_box Text(2) = onoma_text_box Text(3) = onoma_text_box End Sub<p>kai meta ton kwdika pou mou edwses tha prepei na ton balw kapws etsi ?<p> Private Sub Text_GotFocus(Index As Integer) For n = 1 To n = 3 Text(n).BackColor = vbWhite Next n Text(Index).BackColor = vbRed End Sub<p> Private Sub Text_LostFocus(Index As Integer) Text(Index).BackColor = vbWhite End Sub<p>Diorthwseme an kanw lathos plz !!!!!
bandito Δημοσ. 9 Φεβρουαρίου 2002 Δημοσ. 9 Φεβρουαρίου 2002 RTFM αλλά τέσπα<p>Η μαμά Microsoft, έχει φροντίσει ώστε ένα control array να φτιάχνεται πολύ πιο εύκολα. Πάρε ένα textbox και άλλαξε του όλα τα properties όπως τα θέλεις (backround color, font κτλ). Μετά κάνεις copy, paste και βγαίνει η μαγική ερώτηση "Do you want to create a control array?". Αν πατήσεις Υes, τότε το καινούργιο textbox θα έχει το ίδιο όνομα και ιδιότητες με το πρώτο, αλλά και ένα index που θα είναι μοναδικό. Έτσι το πρώτο που έφτιαξες θα έχει index=0 , το δεύτερο 1 κ.ο.κ.<p>Ο κώδικας που σου έδωσα δεν χρειάζεται καμία αλλαγή εκτός απο το όνομα της ρουτίνας. Αν δηλαδή έχεις ονομάσει το textbox txtData, τότε η ρουτίνα θα πρέπει να γίνει <p>Private Sub txtData_GotFocus(Index As Integer) αντί Private Sub Text_GotFocus(Index As Integer)<p>Αν δεν τα καταφέρεις στείλε μου το project στο [email protected] να το κοιτάξω.<p>[ 09-02-2002: Το μήνυμα επεξεργάστηκε από: bandito ]</p>
Προτεινόμενες αναρτήσεις
Αρχειοθετημένο
Αυτό το θέμα έχει αρχειοθετηθεί και είναι κλειστό για περαιτέρω απαντήσεις.