Problème de mise en page / ListBox

Le
michel.arnoux
Bonjour,
Encore un problème basique
Je veux afficher un article, l'opérateur Split (très pratique) le
découpe en champs
J'affiche les champs dans une ListBox (1/ligne), ok pas de problème

Pour améliorer la compréhension je veux afficher le nom du champ
devant son contenu -> résultat : mes données sont en zigzag
comme la longueur des champs est variable, j'avais complèté d'abord
par Right$(NomChamp(J)+Space$(30),30)+Champ(J)
Il y a compression des espaces

Pour contourner l'obstacle je reviens sur NomChamp() et complète par
des points pour obtenir des longueurs égales -> résultat : mes données
restent en zig zag
Il y a compression des points

Comment faire pour avoir une présentation correcte ?
Ce phénomène existe aussi dans les fichiers BlocNotes .txt
Merci de votre amabilité toujours constatée
Michel
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
LE TROLL
Le #15414541
Bonjour,

Prend une police fixe, par exemple couRier new

--
Romans, logiciels, email, site personnel
http://irolog.free.fr/joe.htm
------------------------------------------------------------------------------------

Bonjour,
Encore un problème basique
Je veux afficher un article, l'opérateur Split (très pratique) le
découpe en champs
J'affiche les champs dans une ListBox (1/ligne), ok pas de problème

Pour améliorer la compréhension je veux afficher le nom du champ
devant son contenu -> résultat : mes données sont en zigzag
comme la longueur des champs est variable, j'avais complèté d'abord
par Right$(NomChamp(J)+Space$(30),30)+Champ(J)
Il y a compression des espaces

Pour contourner l'obstacle je reviens sur NomChamp() et complète par
des points pour obtenir des longueurs égales -> résultat : mes données
restent en zig zag
Il y a compression des points ...

Comment faire pour avoir une présentation correcte ?
Ce phénomène existe aussi dans les fichiers BlocNotes .txt
Merci de votre amabilité toujours constatée
Michel
Jacques93
Le #15414531
Bonjour ,
a écrit :
Bonjour,
Encore un problème basique
Je veux afficher un article, l'opérateur Split (très pratique) le
découpe en champs
J'affiche les champs dans une ListBox (1/ligne), ok pas de problème

Pour améliorer la compréhension je veux afficher le nom du champ
devant son contenu -> résultat : mes données sont en zigzag
comme la longueur des champs est variable, j'avais complèté d'abord
par Right$(NomChamp(J)+Space$(30),30)+Champ(J)
Il y a compression des espaces

Pour contourner l'obstacle je reviens sur NomChamp() et complète par
des points pour obtenir des longueurs égales -> résultat : mes données
restent en zig zag
Il y a compression des points ...

Comment faire pour avoir une présentation correcte ?
Ce phénomène existe aussi dans les fichiers BlocNotes .txt
Merci de votre amabilité toujours constatée
Michel




La réponse du TROLL est opérationnelle, mais si tu veux conserver un
police proportionnelle, tu peux utiliser le message LB_SETTABSTOPS :

http://msdn2.microsoft.com/en-us/library/ms671443.aspx

qui définit la position de tabulations dans une ListBox. Il suffit
ensuite de séparer les éléments de la ligne par le caractère de
tabulation vbTab (chr$(9))

Par exemple, à adapter à tes besoins :

Private Declare Function SendMessage Lib "user32" Alias _
"SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, _
ByVal wParam As Long, lParam As Any) _
As Long
Private Const LB_SETTABSTOPS = &H192

Private Sub Form_Load()
Dim Tabs(1) As Long

Tabs(0) = 100 ' à adapter (toujours en pixels)
SendMessage List1.hwnd, LB_SETTABSTOPS, 1, Tabs(0)
With Me.List1
.AddItem "Toto" & vbTab & "1"
.AddItem "TotoTotoToto" & vbTab & "2"
.AddItem "T" & vbTab & "3"
End With
End Sub


--
Cordialement,

Jacques.
Jacques93
Le #15414521
Jacques93 a écrit :

Tabs(0) = 100 ' à adapter (toujours en pixels)
SendMessage List1.hwnd, LB_SETTABSTOPS, 1, Tabs(0)



En fait en Dialog Unit, pas en pixels. Un exemple ici :


si on veut peaufiner.

--
Cordialement,

Jacques.
Jean-marc
Le #15414511
Jacques93 wrote:
Jacques93 a écrit :

Tabs(0) = 100 ' à adapter (toujours en pixels)
SendMessage List1.hwnd, LB_SETTABSTOPS, 1, Tabs(0)



En fait en Dialog Unit, pas en pixels. Un exemple ici :


si on veut peaufiner.



Hello Jacques,

Excellent exemple d'un SendMessage, bien utile pour faire
ce genre de choses!

<pub>
Je profite de l'occasion pour signaler à la communauté
un petit article de la FAQ qui utilse aussi les messages
pour la recherche rapide dans une liste ou combo box:

http://faq.vb.free.fr/index.php?question5
</pub>

Merci encore pour ce très joli exemple!

--
Jean-marc Noury (jean_marc_n2)
Microsoft MVP - Visual Basic
mailto: remove '_no_spam_' ;
FAQ VB: http://faq.vb.free.fr/
Publicité
Poster une réponse
Anonyme