Vb.Net Remplire une Listview d'une façon horizontale

Résolu
Karin.code Messages postés 183 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 16 janvier 2018 - Modifié par Karin.code le 11/10/2016 à 09:36
Karin.code Messages postés 183 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 16 janvier 2018 - 14 oct. 2016 à 12:13
Bonjour ou Bonsoir,
en créant le code suivante je voulais remplir une ListView non d'une façon verticale mais d'une façon horizontale comme le montre l'image suivante :

j'avais beau chercher je n'ai rien pu trouver, alors j'ai décidé de créer mon propre code
je rempli la Textbox1 avec une valeur, je clique sur le bouton "Remplir"
dans la ListView une 1er colonne est crée et rempli par la valeur de la Textbox1
je rempli la Textbox1 avec une nouvelle valeur et je clique sur le bouton "Remplir"
dans la ListView une 2ème colonne est crée et rempli par la nouvelle valeur de la Textbox1
ainsi de suite :
voici le code
 Dim i As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListView1.View = View.Details
If i = 0 Then
ListView1.Items.Add("")
ListView1.Columns.Add("Valeur " & 0, 75, HorizontalAlignment.Left)
ListView1.Items(0).SubItems.Add(TextBox1.Text)
ElseIf i > 0 Then
ListView1.Width = ListView1.Width + 75
ListView1.Columns.Add("Valeur " & i, 75, HorizontalAlignment.Left)
ListView1.Items(0).SubItems.Add(TextBox1.Text)
End If
TextBox1.Clear()
i = i + 1
End Sub

mais le problème est que quand je clique sur le bouton "Remplir" la colonne est crée mais elle sera vide même si la Textbox1 n'est pas vide
quand je rempli la Textbox1 avec une nouvelle valeur et je clique sur le bouton "Remplir" une nouvelle colonne est crée mais elle n'est pas rempli avec la nouvelle valeur de la Textbox1 mais avec l'ancien valeur, même chose pour tous les autres colonnes
aidez-moi s'il vous plaît
Merci pour votre future aide
A voir également:

6 réponses

Karin.code Messages postés 183 Date d'inscription vendredi 2 septembre 2016 Statut Membre Dernière intervention 16 janvier 2018 2
Modifié par Karin.code le 11/10/2016 à 10:55
Bonjour,
Après quelque essais j'ai finis par trouver une solution plutôt satisfaisante, voici le code :

Dim i As Integer = 0
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
ListView1.View = View.Details
If i = 0 Then
ListView1.Columns.Add("Valeur " & 0, 0, HorizontalAlignment.Center)
ListView1.Items.Add("")
ListView1.Width = ListView1.Width + 75
ListView1.Columns.Add("Valeur " & 1, 75, HorizontalAlignment.Center)
ListView1.Items(0).SubItems.Add(TextBox1.Text)
ElseIf i > 0 Then
ListView1.Width = ListView1.Width + 75
ListView1.Columns.Add("Valeur " & i + 1, 75, HorizontalAlignment.Center)
ListView1.Items(0).SubItems.Add(TextBox1.Text)
End If
TextBox1.Clear()
TextBox1.Focus()
i = i + 1
End Sub

et pour éviter l'alignement à gauche par défaut de la première colonne j'ai ajouté cette partie :
ListView1.Columns.Add("Valeur " & 0, 0, HorizontalAlignment.Center)
ListView1.Items.Add("")
ListView1.Width = ListView1.Width + 75
ListView1.Columns.Add("Valeur " & 1, 75, HorizontalAlignment.Center)
ListView1.Items(0).SubItems.Add(TextBox1.Text)
1
kikou93 Messages postés 417 Date d'inscription mardi 4 février 2014 Statut Membre Dernière intervention 24 septembre 2018 1
11 oct. 2016 à 11:46
Bonjour Karin.code,

Le ligne numéro 7 (
ListView1.Width = ListView1.Width + 75
) n'est pas nécessaire car elle ajoute un espace vide dans la Listview
et aussi pour la première colonne (La colonne avec le nom "Valeur 1") une Scrollbarre horizontale sera affiché (pour manque d'espace) pour remédier à ça (pour que la Scrollbarre horizontale ne s'affiche pas )
ajouter le code suivant :
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
ListView1.Scrollable = False
End Sub
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
Modifié par vb95 le 11/10/2016 à 12:56
Bonjour Karin.code
Pour éviter l'alignement à gauche de la première colonne ( la colonne 0) on peut définir cette colonne 0 avec une largeur = à 0 et on commence l'affichage à la colonne 1
De plus pour Kikou73 que je salue si
 Listview1.Scrollable = False 
la ScrollBar verticale ne s'affichera jamais
Pour éviter que la Scrollbar horizontale s'affiche il faut faire en sorte que la largeur de la ListView soit un peu supérieure à la somme des largeurs des différentes colonnes (penser à en rajouter un peu pour que la Scrollbar verticale ne masque pas un morceau de la dernière colonne au cas où la Scrollbar verticale apparaît)
0
Rejoignez-nous