Ciao a tutti,
ho bisogno di un aiuto,
ho una textboxt Text1
in pratica ogni 10 caratteri immessi dall'utente il testo dovrebbe andare a capo
in automatico
come posso fare?
Grazie mille a tutti!
Ciao a tutti,
ho bisogno di un aiuto,
ho una textboxt Text1
in pratica ogni 10 caratteri immessi dall'utente il testo dovrebbe andare a capo
in automatico
come posso fare?
Grazie mille a tutti!
Usa l'evento KeyPress (o anche KeyDown o KeyUp) che si verifica ad ogni carattere digitato. Controlla la lunghezza della proprietà Text e, se è il caso, aggiungi una coppia di caratteri vbCrLf.
Tieni conto anche di questi due caratteri nel verificare la lunghezza: li dovrai aggiungere quando il testo è 10 caratteri, poi quando è 22, 34 ...
Naturalmente la TextBox deve avere la proprietà MultiLine impostata a True.
ti ringrazio per la risposta,
si ho provato un pò ma senza successo, proverò ancora e ti farò sapere
Grazie
Mostra il codice delle tue prove ...Originariamente inviato da S0nic
ti ringrazio per la risposta,
si ho provato un pò ma senza successo, proverò ancora e ti farò sapere
Grazie
No MP tecnici (non rispondo nemmeno!), usa il forum.
Public DinLenght As Integer
Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
Dim MaxLenght As Integer
MaxLenght = 10
DinLenght = DinLenght + 1
If DinLenght > MaxLenght Then
Text2.Text = Text2.Text & vbCrLf
DinLenght = 0
End If
End Sub
allora, ho un pò risolto così
ma resta il problema che il contatore aumenta ance se premo un tasto tipo freccette, invio o concello una parte di testo...
Private Sub Text2_KeyDown(KeyCode As Integer, Shift As Integer)
Dim MaxLenght As Integer
Dim TestoAttuale As String
TestoAttuale = Text2.Text
MaxLenght = 10
DinLenght = DinLenght + 1
If DinLenght > MaxLenght Then
Text2.Text = TestoAttuale & vbCrLf
DinLenght = 0
Text2.SelStart = Len(Text2.Text)
End If
End Sub
EDIT:
dimenticavo, in realtà non va bene nemmeno con questo ecento keydown ne tanto meno keypress
in quanto spesso non è realmente l'utente ad inserire il testo manualmente
ma una procedura che popola quella TextBox, in quest'ultimo caso il testo non verrà riportato a capo ogni 10 caratteri.
avete suggerimenti ?
Grazie ancora![]()
scusate i vari reply.
ho pure provato con questa funzione e richiamandola dall'evento _Change della TextBox
ma il tutto funziona solo se l'utente digita all'interno della casella di testo
Public Function TestoACapo()
Dim TestoAttuale As String
TestoAttuale = Text2.Text
If Len(Text2.Text) = MaxLenght Then
MaxLenght = MaxLenght + 12
Text2.Text = TestoAttuale & vbCrLf
Text2.SelStart = Len(Text2.Text)
End If
End Function
Beh, le indicazioni che ti avevo dato erano diverse. Naturalmente non sei obbligato a segurle, ma potresti almeno provarle.
Non devi "contare" i caratteri digitati, ma "misurare" la lunghezza del testo.
Ecco appunto, non li fare. Inoltre rendi il codice più leggibile usando gli appositi tag delimitatori.scusate i vari reply.
![]()
Devi spiegare meglio le varie modalità di modifica: utente e procedura perchè non è pensabile indovinare come avviene la modifica del testo.
A parte tutto, io taglierei la testa al e manterrei il testo formattato in un secondo controllo quindi l'utente o la procedura possono scrivere finchè vogliono, ma la formattazione la eseguo nel secondo controllo, altrimenti hai voglia a correre dietro a tutti gli eventi....
Ti basta solo l'evento Change.
![]()
Originariamente inviato da Grumpy
Beh, le indicazioni che ti avevo dato erano diverse. Naturalmente non sei obbligato a segurle, ma potresti almeno provarle.
Non devi "contare" i caratteri digitati, ma "misurare" la lunghezza del testo.
Ecco appunto, non li fare. Inoltre rendi il codice più leggibile usando gli appositi tag delimitatori.
![]()
scusami, è che essendo un novellinonon riesco a fare tutto!
Originariamente inviato da gibra
Devi spiegare meglio le varie modalità di modifica: utente e procedura perchè non è pensabile indovinare come avviene la modifica del testo.
A parte tutto, io taglierei la testa al e manterrei il testo formattato in un secondo controllo quindi l'utente o la procedura possono scrivere finchè vogliono, ma la formattazione la eseguo nel secondo controllo, altrimenti hai voglia a correre dietro a tutti gli eventi....
Ti basta solo l'evento Change.
![]()
ok grazie
vedo se riesco a trovare qualcosa per la formattazione.
in pratica è un piccolo programma dove vi sono 2 textbox e 1 commandButton
in text1 scrivo il testo
premento il command button entra in gioco la funzione Base64Encode
che va a scrivere l'output in text2.
Text2 dovrebbe andare a capo ogni tot di caratteri.