thyphonfalcon
Messages postés41Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention12 mai 2007
-
19 nov. 2006 à 15:04
thyphonfalcon
Messages postés41Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention12 mai 2007
-
19 nov. 2006 à 21:08
Bonjour,
J'essaye d'avoir une majuscule en début de chaque ligne de texte dans mon richtextbox sour vb2005.
#
Region
" Majuscule en cours de frappe"
Private
Sub Text1_KeyPress(
ByVal eventSender
As System.Object,
ByVal eventArgs
As System.Windows.Forms.KeyPressEventArgs)
Handles RichTextBox1.KeyPress
Dim KeyAscii
AsShort Asc(eventArgs.KeyChar)KeyAscii Maj(KeyAscii, RichTextBox1.Text)
eventArgs.KeyChar = Chr(KeyAscii)
If KeyAscii = 0
TheneventArgs.Handled =
True
End
If
End
Sub
Function Maj(
ByVal KeyAscii
As
Integer,
ByVal TextBoxName
As
String)
Dim Str_Renamed
As
Object
If KeyAscii > 96
And KeyAscii < 123
Then
If Len(TextBoxName) = 0
ThenKeyAscii = KeyAscii - 32
Avec ce code j'arrive à avoir la première lettre de la première ligne mais je n'arrive pas à reproduire le résultat sur les autres lignes ?
une idée quelqu'un ?
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 19 nov. 2006 à 15:37
Pour une majuscule après un saut de ligne :
Private Sub RichTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles RichTextBox1.KeyPressIf RichTextBox1.TextLength 0 OrElse RichTextBox1.Text.Chars(RichTextBox1.TextLength - 1) vbLf Then e.KeyChar = Char .ToUpper(e.KeyChar)
End If
End Sub
---- Sevyc64 (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 19 nov. 2006 à 21:05
Dsl, petite correction.
En voulant aller trop vite, on fait des erreurs.
Evidement ce code est très simpliste et necessite que la règle de français soit absolument respectée pour fonctionner. Il ne donne qu'une piste vers la solution finale. Il est perfectionnable au gout de chacun
Private Sub RichTextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles RichTextBox1.KeyPress
If RichTextBox1.TextLength = 0 OrElse _
RichTextBox1.Text.Chars(RichTextBox1.TextLength - 1) = vbLf OrElse _
RichTextBox1.TextLength > 1AndAlso ( _
RichTextBox1.Text.Substring(RichTextBox1.TextLength - 2) = ". " OrElse _
RichTextBox1.Text.Substring(RichTextBox1.TextLength - 2) = "! ") Then '............
e.KeyChar = Char .ToUpper(e.KeyChar)
End If
End Sub
---- Sevyc64 (alias Casy) ----<hr size ="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
cs_Catara
Messages postés4Date d'inscriptionsamedi 18 novembre 2006StatutMembreDernière intervention19 novembre 2006 19 nov. 2006 à 19:51
C'est bien sympa tout çà mais le code est écrit pour un textebox et pas un richtexbox...faut dormir thyphon !
Par contre, en le modifiant pour un richtextbox on obtient rien....si ce n'est qu'il écit à l'envers !!!
La fonction de SevyC64 seule nous donne la majuscule à chaque ligne mais alors sevyC64 comment fait t'on pour qu'il mette aussi une majuscule après un point ou un point d'exclamation ? car là je suis paumé et un débutant paumé......
Merci à vous deux.....heu sans rancune Thyphon ;-)
thyphonfalcon
Messages postés41Date d'inscriptionvendredi 27 octobre 2006StatutMembreDernière intervention12 mai 2007 19 nov. 2006 à 21:08
oups..désolé Catara, j'avais suivis ton conseil...j'ai piqué un petit roupillon !!
Et merci à toi Casy, j'avais pas vu la suite...effefctivement, il faut le déclarer dans les conditions et ne pas oublier
Une phrase débute par un majuscule et ce termine par un point. (puis un espace après le point si tu es sur la même ligne) comme le fait justement remarqué Casy.
Bonsoir à tous