Colones automatiques, listbox [Résolu]

Signaler
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009
-
Renfield
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

j'ai programmé une lecture de table que j'ai affiché dans une listbox sous la forme titre - année - Etat

Cependant les informations sont décalés d'une ligne à l'autre, ce n'est non seulement pas très esthétiques mais sur une grosse listbox c'est difficile pour se repérer, j'aimerais que les informations soient alignés.

J'ai essayé de mettre la listbox en multicolones mais je ne vois pas de différence, de plus je crois que même si j'y parvenais je ne sais pas comment ajouter les informations à tel ou tel colonne.

Pourriez vous m'aider sil vous plait.

13 réponses

Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
possible avec un listbox, en ajoutant des tabulations pour séparer les données...

http://www.vbfrance.com/codes/LB_SETTABSTOPS-COLONNES-DANS-LISTBOX_20841.aspx
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
ListView1.View = View.Details
ListView1.Columns.Add("titre")
ListView1.Columns.Add("année")
ListView1.Columns.Add("état")

With ListView1.Items.Add("titre d'essai")
.SubItems.Add("2009")
.SubItems.Add("disponible")
End With
With ListView1.Items.Add("titre d'essai: le retour")
.SubItems.Add("2010")
.SubItems.Add("en production")
End With

ListView1.AutoResizeColumns(ColumnHeaderAutoResizeStyle.HeaderSize)
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
une ListView (DataGrid ou autre)
me semble plus indiqué.
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

Je le sais bien cependant j'aurais préféré une listbox, je trouve que ça présente mieux
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
tu peux masquer les entetes de colonnes de ta listview, et demander a ce que la selection se fasse sur toute la ligne.

visuellement, on serai assez proche de ce que peux proposer un listbox...
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

Bon ben je vais me rabattre sur un datagrid si je trouve pas pour la listbox :s merci
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

Effectivement ça correspond à ce que je recherchais ^^ je t'en remercie.

Cependant tu as attiré ma curiosité sur les listview,  je ne sais pas les utiliser.

Pourrais tu me donner l'exemple de l'ajout de trois colonnes (titre, année, etat)

ainsi que l'assignation de trois valeurs à ses colonnes respectives (titre d'essai, 2009, disponible) ????

je te remercie
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

Vraiment magnifique ... je te remercie mille fois, j'étais en train de me battre avec ma listview ^^ merci beaucoup.
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

Il me reste un dernier souci ... désolé

Lorsque je veux récupérer le contenu d'un listview je procède comme ceci

    Private Sub listview1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lv_livres.SelectedIndexChanged
        tb_titre.Text = lv_listview1.SelectedItems(0).Text
    End Sub

il me récupère donc mon titre cependant cela ne marche qu'une fois, si je clique ailleurs le programme plante, de plus je ne sais récupérer que les titres ...

Désolé mais les listview apparemment ça veut pas rentrer
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

Il faudrait que je fasse un foreach pour la sélection mais je sais pas sur quoi boucler.
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
Private Sub ListView1_ItemSelectionChanged(ByVal sender As Object, ByVal e As System.Windows.Forms.ListViewItemSelectionChangedEventArgs) Handles ListView1.ItemSelectionChanged
MessageBox.Show("Info: " & e.Item.Text & Environment.NewLine & _
"Année: " & e.Item.SubItems(1).Text & Environment.NewLine & _
"Etat: " & e.Item.SubItems(2).Text)
End Sub
Messages postés
11
Date d'inscription
vendredi 9 janvier 2009
Statut
Membre
Dernière intervention
27 mai 2009

Je te remercie, j'ai plus de problème et j'ai sut l'adapter au reste de mon code :d

si tu veux bien juste m'expliquer concrètement ce que fait

with ... end with

et pourquoi on écrit

        With ListView1.Items.Add("titre d'essai: le retour")

            .SubItems.Add("2010")

            .SubItems.Add("en production")

        End With

au lieu de

        With ListView1.Items.Add("titre d'essai: le retour").SubItems.Add("2010").SubItems.Add("en production")

        End With

je vois comment ça fonction etc mais si tu pouvais me donner des explications affin que je l'assimile ce serait sympa
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
61
c'est en remplacement de (en gros et de tête)

Dim oItem as ListItem
oItem = ListView1.Items.Add("titre d'essai: le retour")
oItem.SubItems.Add("2010")
oItem.SubItems.Add("en production")