jubourbon
Messages postés40Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention 3 juillet 2009
-
17 avril 2008 à 15:24
cs_evodie
Messages postés1Date d'inscriptionmardi 19 janvier 2010StatutMembreDernière intervention19 juin 2010
-
19 juin 2010 à 13:00
Bonjour,
Premiere programmation en vb.net, je cherche à remplir une listview, mais n'arrive qu'a avoir une belle liste vide.
Je m'explique, j'ai créé une listview, je l'ai parametré sur details, j'ai declaré 3 colonnes:
column0
column1
column2
Apres multiple recherche, je retiompbe toujours sur la meme syntaxe, et pourtant ca ne marche pas.
Voici ce que j'ai tapé:
Private Sub ListView1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListView1.SelectedIndexChanged
Dim ls As New ListViewItem("bloblo")
ls.Checked = True
ls.SubItems.Add("Column0").Text = "blabla"
ls.SubItems.Add("Column1").Text = "blablibla"
ls.SubItems.Add("Column2").Text = "hhhhhhhhh"
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 17 avril 2008 à 15:31
Salut,
Sans regarder plus loin je dirais que c'est parce que tu l'as mis dans l'évènement SelectedIndexChanged Du ListView. Evenement qui survient (entre autre) lorsque l'on sélectionne une ligne (MAIS ELLE EST VIDE).
Si tu veux le remplir au démarrage , place ton code dans le Chargement de ta feuille ca sera plus "logique"
jrivet
Messages postés7393Date d'inscriptionmercredi 23 avril 2003StatutMembreDernière intervention 6 avril 201260 17 avril 2008 à 16:57
Salut,
Il me semble (enfin si c'est comme en VB6) que la premiere colonne prends la valeur Dim ls As New ListViewItem("blabla") Donc si tu veux pas du "blabla" il faut mettre
Dim mavariable As String = "voiture"
'"blabla" = 1 ere colonne
Dim ls As New ListViewItem(mavariable)
ls.Checked = True
ls.SubItems.Add("column0").Text = ("12/04/08")
ls.SubItems.Add("column1").Text = "materiel"
ListView1.Items.Add (ls)
, ----
[code.aspx?ID=41455 By Renfield]
Si tu veux garder "blabla" tu dois simplement augmenter le nombre de colonnes de ton ListView
jubourbon
Messages postés40Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention 3 juillet 2009 17 avril 2008 à 16:49
Euh, j'ai une autre question.
Je ne comprend pas tres bien comment cela fonctionne?
Voici mon code modifié:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim mavariable As String = "voiture"
Dim ls As New ListViewItem("blabla")
ls.Checked = True
ls.SubItems.Add("column0").Text = mavariable
ls.SubItems.Add("column1").Text = ("12/04/08")
ls.SubItems.Add("column2").Text = "materiel"
ListView1.Items.Add(ls)
End Sub
Et à l'affichage, j'ai dans ma premiere colonne blabla, la deuxieme voiture et la troisieme 12/04/08.
Ne devrais je pas avoir dans l'ordre voiture-12/04/08-materiel?
Ensuite, je souhaiterais ajouter à chaque evenement click d'un bouton, une ligne supplementaire.
Suis je obligé de recréer une variable de type ListViewItem? Il doit y avoir une methode plus optimal?
jubourbon
Messages postés40Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention 3 juillet 2009 17 avril 2008 à 17:00
Oué carrement, mais pour l'histoire d'ajouter suite a un evenement sans effacer l'enregistrement precedent, aurais tu une idée?
dois je recreer une variable du genre:
Dim ls2 As New ListViewItem(mavariable)'contenant la nouvelle valeur de mavariable
jubourbon
Messages postés40Date d'inscriptionjeudi 6 mars 2008StatutMembreDernière intervention 3 juillet 2009 18 avril 2008 à 08:16
Par exemple pour ecrire une premiere ligne dans mon tableau, je tape:
Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim mavariable As String = "voiture"
Dim ls As New ListViewItem("blabla")
ls.Checked = True
ls.SubItems.Add("column0").Text = mavariable
ls.SubItems.Add("column1").Text = ("12/04/08")
ls.SubItems.Add("column2").Text = "materiel"
ListView1.Items.Add(ls)
End Sub
Pour la seconde ligne dois je recreer une variable du type:
Dim ls2 As New ListViewItem("blibli")....
Ce n'est pas tres pratique car au bout du compte j'aurais ls, ls2,....lsN, difficilement gerable.
Est ce un peu plus clair?
cs_evodie
Messages postés1Date d'inscriptionmardi 19 janvier 2010StatutMembreDernière intervention19 juin 2010 19 juin 2010 à 13:00
Private Sub Form_Load()
AdoDirection.CommandType = adCmdText
AdoDirection.RecordSource = "select* from Direction"
AdoDirection.Refresh
If AdoDirection.Recordset.RecordCount > 0 Then
For I = 1 To AdoDirection.Recordset.RecordCount
AdoService.CommandType = adCmdText
AdoService.RecordSource "select* from Service where Srv_code_dir'" & codedirection & "'"
AdoService.Refresh
If AdoService.Recordset.RecordCount > 0 Then
For j = 1 To AdoService.Recordset.RecordCount
servicecode = AdoService.Recordset.Fields(0)
servicenom = AdoService.Recordset.Fields(1)
Set Noeud1 = TreeView1.Nodes.Add(codedirection, tvwChild, servicecode, servicenom)
AdoService.Recordset.MoveNext
Next j
End If
Next I
End If
End Sub
Private Sub TVWorganigramme_Nodeclick(ByVal Node As MSComctlLib.Node)
'MsgBox Node.Children
AdoAgent.CommandType = adCmdText
ListView1.ListItems.Clear
If Node.Children > 0 Then
codedirection = Node.Text
AdoAgent.RecordSource = "select * where Agt_codeDirection='" & codedirection & "'"
AdoAgent.Refresh
AdoAgent.Recordset.MoveFirst
'If AdoAgent.Recordset.RecordCount > 0 Then
For j = 1 To AdoAgent.Recordset.RecordCount
'Transfert du contenu des différents champs dans des variables
nmatricule = AdoAgent.Recordset![Agt_matricule]
cnom = AdoAgent.Recordset![Agt_nom]
cprenom = AdoAgent.Recordset![Agt_prenom]
'Insérer le contenu des variable
Set ligneagent = ListView1.ListItems.Add(, , "nmatricule")
'ligneagent.SubItems(1) = AdoAgent.Recordset.Fields("cnom")
'ligneagent.SubItems(2) = AdoAgent.Recordset.Fields("cprenom")
ligneagent.SubItems(1) = cnom
ligneagent.SubItems(2) = cprenom
AdoAgent.Recordset.MoveNext
Next j
'End If
Else
servicecode = Node.Text
AdoAgent.RecordSource = "select * where Agt_codeService='" & servicecode & "' "
AdoAgent.Refresh
AdoAgent.Recordset.MoveFirst
'If AdoAgent.Recordset.RecordCount > 0 Then
For t = 0 To AdoAgent.Recordset.RecordCount
'Transfert du contenu des différents champs dans des variables
nmatricule = AdoAgent.Recordset![Agt_matricule]
cnom = AdoAgent.Recordset![Agt_nom]
cprenom = AdoAgent.Recordset![Agt_prenom]
'Insérer le contenu des variable
Set ligneagent = ListView1.ListItems.Add(, , "nmatricule")
'ligneagent.SubItems(1) = AdoAgent.Recordset.Fields("cnom")
'ligneagent.SubItems(2) = AdoAgent.Recordset.Fields("cprenom")
ligneagent.SubItems(1) = cnom
ligneagent.SubItems(2) = cprenom
AdoAgent.Recordset.MoveNext
Next t
'End If