Tabulations dans un rich text box

Résolu
blass514 Messages postés 4 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 21 novembre 2011 - 18 nov. 2011 à 00:17
 Utilisateur anonyme - 18 nov. 2011 à 11:54
Bonjour à tous,

Je suis nouveau dans ce forum et aussi dans la programmation. Je voudrais savoir si quelqu'un pourrait m'aider à coder les tabulations dans un "richtextbox" dans visual basic 2010. En fait j'aimerais juste avoir un indice par où commencer ou si quelqu'un pourrait me donner un lien qui pourrait me l'expliquer.

Merci beaucoup

11 réponses

Utilisateur anonyme
18 nov. 2011 à 11:54
Encore moi...

Je suis complètement à coté de la plaque...

En .NET il existe une propriété dans le richtextbox qui s'appelle AcceptsTab (true ou false)......

C'est vrai que j'utilise rarement ce contrôle.

Voilà c'est tout bête.


CF2i - Guadeloupe
Ingénierie Informatique
3
Utilisateur anonyme
18 nov. 2011 à 00:27
Salut,

Que veut-tu dire par:
quelqu'un pourrait m'aider à coder les tabulations dans un "richtextbox"

ça veut dire que tu as des tabulations dans ton richtext et que tu veux gérer le texte entre?
Ou tu veux affecter le focus sur les richtextbox à l'aide de la touche Tab?

cordialement



CF2i - Guadeloupe
Ingénierie Informatique
0
blass514 Messages postés 4 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 21 novembre 2011
18 nov. 2011 à 00:56
Bonjour je voudrais juste pouvoir mettre des tabulations comme on le fait dans un logiciel de traitement de texte comme word ou notepad voilà
0
blass514 Messages postés 4 Date d'inscription mercredi 16 novembre 2011 Statut Membre Dernière intervention 21 novembre 2011
18 nov. 2011 à 00:57
J'ai oublié de vous remercier!

Alors merci à l'avance!
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Utilisateur anonyme
18 nov. 2011 à 01:29
Re:
Très bonne question... je viens d'essayer il ne prend même pas en compte le RichTextBox1_KeyDown...

Mis à part la possibilité de le gérer avec les tabStop des autres contrôles ou encore le keypreview de la form, ou encore le fait que je soit fatigué

Je cherche...


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 nov. 2011 à 07:27
Bonjour, acive,

Mais oui, le keydown reconnait bien le keycode 9 (tabulation), mais cette la tabulation est immédiatement interprétée comme la volonté de "passer" au contrôle suivant.
Il faut donc intercepter cette tabulation et lui donner un autre sens.
Transpose-moi ceci (écrit en VB6) pour VB.Net :
Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
  If KeyCode = 9 Then
    RichTextBox1.SelText = vbTab
    KeyCode = 0
  End If
End Sub


Il va maintenant de soi que l'on ne peut avoir le beurre et l'argent du beurre et que ce code fait perdre la possibilité d'utiliser la touche tabulation pour se "balader" d'un contrôle à l'autre
Mais on peut alors se montrer vicieux, si l'on veut et laisser par exemple, la simple tabulation pour "se balader" entre contrôles et (dans la richtextbox) utiliser CTRL+TAB pour y mettre une tabulation.
Voici ce que cela donnerait sous VB6 (à transposer, donc) :
Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
  If Shift 2 And KeyCode 9 Then
    RichTextBox1.SelText = vbTab
    KeyCode = 0
  End If
End Sub

Note que j'ai éviter d'utiliser MAJ+TAB, car lui également sert à "naviguer" entre contrôles
J'ai choisi CTRL+TAB. J'aurais pu choisir ALT+TAB également
Dans lke code ci-dessus :
- Shift 2 ans keycode 9 signifie CTRL + TAB
- la constante vbTab correspond à la tabulation
- Seltext envoie le texte défini au point où se trouve le caretr





____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 nov. 2011 à 07:46
Attends !
Je suis probablement mal réveillé, ce matin !
Le dernier bout de code (celui avec CTRL + TAB) n'est pas faux, mais il est totalement inutile car CTRL + TAB (sans ce code), insère déjà une tabulation. Mon code n'est alors qu'un "fil à couper le beurre"



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 nov. 2011 à 07:57
Mais (juste pour nous amuser un peu et ne pas avoir travaillé "pour blèche" (comme on disait chez moi quand j'étais jeune), revoici mon code, légèrement transformé.
Le CTRL + TAB remplira son office, mais également le ALT + SPACE (les deux, quoi !) :
code VB6 à teransposer en VB.Net, hein !
Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
  If Shift 4 And KeyCode 32 Then
    RichTextBox1.SelText = vbTab
    KeyCode = 0
  End If
End Sub

où Shift 4 And KeyCode 32 correspond à ALT + SPACE



____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Utilisateur anonyme
18 nov. 2011 à 11:33
Salut UC, comment vas?

Alors je viens d'essayer en VB6 c'est bon pas de problème.
Sauf que c'est Alt + Espace (c'est pareil).
Le fait que ça fonctionne comme ça, ne nous dérange pas, on sait que c'est comme ça.

Maintenant d'après ce que j'ai compris, notre ami Blass fait une application, qui (je pense) devra être utilisée par des secrétaires par exemple.
Les secrétaires ont suivi des cours de traitement de texte, et nous ici... venons de changer une des règles du traitement de texte...

Autre chose, je viens de m'en rendre compte que quand je fais ça en VB6:
Private Sub RichTextBox1_KeyDown(KeyCode As Integer, Shift As Integer)
Me.Caption = KeyCode
End Sub

C'est bon j'ai bien un 9 en haut et il saute sur un autre contrôle.

Et quand je fais ça en .Net:
 Private Sub RichTextBox1_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles RichTextBox1.KeyDown
        Me.Text = e.KeyCode
    End Sub

J'ai rien du tout... Il saute sur un autre contrôle mais c'est tout.

Tu vois? encore un mystère....

Dans l'immédiat une solution pour que ça fonctionne, soit on met le richtext tout seul dans une form sans autres contrôles, soit on inhibe les tabStop de tous les autres contrôles au tour.
Mais ça ne résout pas nôtre problème...


CF2i - Guadeloupe
Ingénierie Informatique
0
Utilisateur anonyme
18 nov. 2011 à 11:47
Re:

Alors j'ai trouvé ce truc qu'on s'est tous demandé à quoi ça sert en .Net:
 Private Sub RichTextBox1_PreviewKeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles RichTextBox1.PreviewKeyDown
        If e.KeyCode = 9 Then
            RichTextBox1.Text &= vbTab
        End If
    End Sub


Ca fonctionne sauf que j'ai pas encore trouvé comment éviter que le focus passe à un autre contrôle... je cherche...


CF2i - Guadeloupe
Ingénierie Informatique
0
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
18 nov. 2011 à 11:49
Ben ...
Suffit (sans même coder) de CTRL+TAB, comme prévu par Windows


____________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches d'autres forumeurs.
Pas d'aide en ligne installée ? ==> ne comptez pas sur moi pour simplement vous dire ce qu'elle contient
0
Rejoignez-nous