Mettre des tab dans un richtextbox [Résolu]

ManuAntibes 454 Messages postés mardi 24 octobre 2000Date d'inscription 12 août 2016 Dernière intervention - 24 janv. 2007 à 22:56 - Dernière réponse : ManuAntibes 454 Messages postés mardi 24 octobre 2000Date d'inscription 12 août 2016 Dernière intervention
- 25 janv. 2007 à 19:37
Bonjour

Je souhaite faire un tableau dans un richtextbox, pour afficher des inventaires et pouvoir les imprimer.

Voici un exemple de mon travail.

Par contre je souhaite aligner mes tabulations , pour que les signes | soient alignés.
 RichTextBox1.SelectionIndent 30 : RichTextBox1.SelectedText CODEPLU            RichTextBox1.SelectedText vbTab : RichTextBox1.SelectedText " | "            RichTextBox1.SelectedText vbTab : RichTextBox1.SelectedText DESIGN ': Espace(nbDES)

J'ai essayé vbTab(10), mais j'ai une erreur "L'index se trouve en dehors du tableau"

Merci de m'aider je ne c'est pas quoi faire continuer avec Richtextbox ou un autre controle ????
Je developpe en VB2005 express

MANUANTIBES [:p]
Afficher la suite 

6 réponses

Répondre au sujet
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 25 janv. 2007 à 11:32
+3
Utile
Un petit exemple (pas très bien fait, c'est juste pour te mettre sur la voie) :

Private Tab(,) As String = {{"Ligne 1", "Colonne 12", "Colonne 13"}, {"Ligne 2", "Colonne 22", "Colonne 23"}}

Private Sub DrawTab(ByVal g As System.Drawing.Graphics)
  Const RowHeight As Integer = 20
  Const ColWidth As Integer = 90
  For iRow As Integer = 0 To Tab.GetUpperBound(0)
    g.DrawLine(System.Drawing.Pens.Black, 0, (iRow + 1) * RowHeight, g.ClipBounds.Width, (iRow + 1) * RowHeight)
    For iCol As Integer = 0 To Tab.GetUpperBound(1)
      g.DrawString(Tab(iRow, iCol), MyBase.Font, System.Drawing.Brushes.Black, iCol * ColWidth + 3, iRow * RowHeight + 3)
  Next iCol, iRow
  For iCol As Integer = 0 To Tab.GetUpperBound(1)
    g.DrawLine(System.Drawing.Pens.Black, (iCol + 1) * ColWidth, 0, (iCol + 1) * ColWidth, g.ClipBounds.Height)
  Next iCol
End Sub

Private Sub PicTab_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles PicTab.Paint
  Call DrawTab(e.Graphics)
End Sub

' Pour imprimer (on utilise un PrintDocument)
Private Sub TonPrintDocument_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles TonPrintDocument.PrintPage
  Call DrawTab(e.Graphics)
End Sub, ----
(Coloration syntaxique automatique par Kenji)

__________
Kenji
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Charles Racaud
Charles Racaud 3181 Messages postés dimanche 15 février 2004Date d'inscription 9 avril 2017 Dernière intervention - 24 janv. 2007 à 23:07
0
Utile
Salut,

En effet, je ne pense pas qu'une RichTextBox soit bien approprié pour ca.
Le mieux, je pense, et de dessiner toi même ton tableau avec les outils du gdi.
Si tu dessine dans une PictureBox que tu place dans une panel avec AutoScroll, sa te placera tout seul la ScrollBar.






__________
Kenji
Commenter la réponse de Charles Racaud
cs_DARKSIDIOUS 15838 Messages postés jeudi 8 août 2002Date d'inscription 4 mars 2013 Dernière intervention - 25 janv. 2007 à 06:40
0
Utile
Oui ou utiliser directement les outils de reporting qui sont fait pour cà, ce sera bien plus simple !
Commenter la réponse de cs_DARKSIDIOUS
ManuAntibes 454 Messages postés mardi 24 octobre 2000Date d'inscription 12 août 2016 Dernière intervention - 25 janv. 2007 à 07:15
0
Utile
Merci pour vos reponses.

Pour la reponse de Charles Racaud, c'est quoi le gdi ??? , et si je place le tous dans une picturebox est ce que je vais pouvoir imprimer toutes les lignes ???

Pour la reponse de DARKISIDIOUS , je suis avec la version express de VB 2005, je n'ai pas le reporting je crois !!!

MANUANTIBES [:p]
Commenter la réponse de ManuAntibes
cs_casy 7745 Messages postés mercredi 1 septembre 2004Date d'inscription 24 septembre 2014 Dernière intervention - 25 janv. 2007 à 10:44
0
Utile
Pour le cas ou tu souhaiterais conserver la RTB, il te faut utiliser une police à espacement fixe style Courrier New. Mais ça sera moins joli comme affichage

---- Sevyc64  (alias Casy) ----<hr size="2" width="100%" /># LE PARTAGE EST NOTRE FORCE #
Commenter la réponse de cs_casy
ManuAntibes 454 Messages postés mardi 24 octobre 2000Date d'inscription 12 août 2016 Dernière intervention - 25 janv. 2007 à 19:37
0
Utile
Merci pour ton bout de code Charles.
Ca va bien me servir
A+

MANUANTIBES [:p]
Commenter la réponse de ManuAntibes

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.