cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008
-
1 sept. 2008 à 20:16
cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008
-
2 sept. 2008 à 17:18
Bonjour à tous
J'ai un petit problème .
Je n'arrive pas à trouver comment savoir si je suis en mode Insertion dans une (Rich)texbox.
Pour une MaskedTextbox pas de problème , Mais rien à faire pour une (Rich)texbox.
Si vous avez une solution, elle sera vraiement la bienvenue
Merci par avance
A+
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 sept. 2008 à 21:47
en effet sel... reste à 0 dans ce cas.
une once de folie : au keypress l'évènement est retourné et n'est pas altéré si la touche est pressée ailleurs (notepad par exemple)
e.keychar.tostring retourne "Insert", peut-être possible de jongler avec un static boolean alors
++
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 2 sept. 2008 à 02:03
au down, pas au press* (en effet)
mais il n'est pas à ON à chaque pression, d'où le static évoqué
Private Sub RichTextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
Static bInsertDown As Boolean
If e.KeyCode = Keys.Insert Then
bInsertDown = Not bInsertDown
RichTextBox1.BackColor = IIf(bInsertDown, Color.Turquoise, Color.White)
End If
End Sub
PCPT
Messages postés13272Date d'inscriptionlundi 13 décembre 2004StatutMembreDernière intervention 3 février 201847 1 sept. 2008 à 21:24
plus clair avec ton explication casy (merci )
peut-être jouer en regardant le sellength au keydown et keypress?
ou encore avant au mouse_move, ou pareil au keypress pour les flèches directionnelles (à moins qu'elles soient dans le down sous VB.NET)
dans tous les cas si sellength>0 au keydown (ou press) c'est qu'on est en insert, non?
à tester.....
<hr size="2" width="100%" />Prenez un instant pour répondre à [infomsg_SONDAGE-POP3-POUR-CS_769706.aspx ce sondage] svp
cs_casy
Messages postés7741Date d'inscriptionmercredi 1 septembre 2004StatutMembreDernière intervention24 septembre 201440 1 sept. 2008 à 21:30
Pas évident, parce que lorsque tu es un mode Remplacement (Overwrite), lorsque tu tappe une touche, c'est le caractère suivant le curseur qui est remplacer par celui saisi et sans qu'un quelconque caractère soit sélectionné. J'ai pas vérifier les propriétés mais logiquement je dirais que SelLenght est bien =0
C'est le même fonctionnement que sous Word lorsque tu as le petit indicateur Ovr affiché dans la barre de status, en bas.
gillardg
Messages postés3275Date d'inscriptionjeudi 3 avril 2008StatutMembreDernière intervention14 septembre 20142 1 sept. 2008 à 22:26
Quand tu lances ton programme qui contient une richtextbox même si juste avant tu est en mode insert, le richtextbox n'en tiendras pas compte mais quand le richtextbox a le focus tu peux le savoir comme précisé ci dessous
cs_spoty
Messages postés17Date d'inscriptionmercredi 11 juillet 2007StatutMembreDernière intervention11 septembre 2008 2 sept. 2008 à 13:52
Bonjour
ça se complique !!!
Dans mon application , dans la richtextbox les entrées clavier doivent être uniquement en Remplacement .
Dim
PreAffRic AsBoolean = True
Dim Inser AsBoolean = True
...
PrivateSubRicTexBox_GotFocus(ByValsenderAsObject, ByValeAsSystem.EventArgs) HandlesRicTexBox.GotFocus
IfPreAffRicThen
SendKeys.SendWait("{INSERT}")
RicTexBox.BackColor = Color.Turquoise
PreAffRic= false
Inser = False
EndIf
EndSub
' pour l'instant pas de problème
Le Hic est pour intercepter la touche Inser
l'événement RicTexBox.KeyDown se produit bien
Mais RicTexBox.KeyPress ne se produit pas en appuyant sur la touche inser ???
Donc impossible d'utiliser
e.Handled = True
C'est normal ou j'ai un bug ?