Comment assossier un item listview a un evenement

berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007 - 7 nov. 2007 à 11:16
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007 - 7 nov. 2007 à 17:09
bonjour tout le monde

voila mon souci - je suis en train de creer un programme avec un listview et je bloque completement sur son utilisation

j'ai parcouru le forum de long en large sans pouvoir me rassasier

je m'explique:
dans la premiere colonne je veux inserer un icone "on" ou "off"
dans la seconde je rentre une heure quelconque de demarrage
dans la troisieme je rentre une autre heure mais celle ci d'arret
des que  l heure de la seconde colonne atteind  l"heure systeme, je voudrais que l'icone de la premiere colonne de la meme ligne passe sur "on" et inversement lorsque la troisieme colonne atteind l'heure systeme

merci d'avance pour vos suggestions de codes (une semaine que je suis la dessus et la mon cerveau s'embrase)

Seb

14 réponses

cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 11:39
Salut,

Ben je dirais qu'il faut faire un DateDiff(en vb6), qui va te comparé l'heure de début et l'heure de fin..DateDiff te renvoiras 0 si il n'y a aucune différence ce qui voudrais dire qu'elles sont identique donc tu t'en sert pour changer ton icone...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 11:44
merci pour ta reponse mais je programme avec vb.net et datediff ca n'existe pas

Seb
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 11:48
Certes...Mais il doit bien y avoir un équivalent, regarde avec ton aide ne ligne...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 12:05
Ou alors(s'il n'y a pas d'équivalent) et si l'heure que tu rentres dans ta listview et du type String, tu peux aussi faire la comparaison de String...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 12:10
le probleme n'est pas vraiment la


pour commencer ou je rentre le code sachant que je peux avoir plus d'une centaine de ligne dans mon listview


comment faire pour que toutes mes lignes soient autonomes (chaque ligne = heure debut et heure fin differente)


Seb
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 12:17
Ben, je verrais bien sun sub avec un doevents qui va verifier toutes tes lignes(du moins ta colonne de l'heure de fin) et qui fait la compraison avec l'heure sytème recupérer en String...

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 12:31
peux tu preciser en me donant un bout de code par ex car je debute en prog

Seb
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 13:52
Salut,

Voici un exemple en VB6(je ne connais pas .net), mais je pense que tu n'auras pas de mal à transcrire ce code en .net :

Option Explicit




Private Sub Form_Load()
   
    ' Déclare une variable pour ajouter des objets ListItem
     Dim itmX As ListItem


    ' Ajout de colonne
     ListView1.ListItems.Clear
     ListView1.ColumnHeaders.Clear
     ListView1.ColumnHeaders.Add , , "Heure début", (ListView1.Width * (3 / 8)), lvwColumnLeft
     ListView1.ColumnHeaders.Add , , "Heure fin", (ListView1.Width * (3 / 8)), lvwColumnLeft
     ListView1.View = lvwReport
     ListView1.Font.Size = 10




    ' Ajout d'élèments à listview(1 ligne)
     Set itmX = ListView1.ListItems.Add(, , CStr(Format(Time, "hh:mm:ss")))
         itmX.SubItems(1) = "13:48:00"


    ' Ajout d'élèments à listview(2 ligne)
     Set itmX = ListView1.ListItems.Add(, , CStr(Format(Time, "hh:mm:ss")))
         itmX.SubItems(1) = "15:00:00"
        
        
    ' Lancement de la vérife dans listview toutes les 2 secondes
     Timer1.Interval = 1000
    
        
End Sub


Private Sub Timer1_Timer()


        
    ' On va vérifier l'heure de fin dans la
    ' colonne listview par rapport à
    ' l'heure système
     Dim NbrLine As Long
         
    
    ' On parcoure toute les lignes de 1 à la dernière
     For NbrLine = 1 To ListView1.ListItems.Count
 
    ' On compare 
     If ListView1.ListItems(NbrLine).SubItems(1) = CStr(Format(Time, "hh:mm:ss")) Then
        ' Moi j'ai mit une message box, toi tu mets le changement de ton icone
        MsgBox "Coucou c'est la fin de votre connection à internet"
     End If


  
     Next NbrLine


    
End Sub


A+
Exploreur

 Linux a un noyau, Windows un pépin


 
0
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 16:37
ca ne marche pas, il me met l'exception suivante:


System.ArgumentOutOfRangeException: Specified argument was out of the range of valid values.
Parameter name: '1' is not a valid value for 'displayIndex'.
   at System.Windows.Forms.ListViewItemCollection.get_Item(Int32 displayIndex)
   at WindowsApplication18.Form1.TextBox1_TextChanged(Object sender, EventArgs e) in C:\Documents and Settings\sebastien\Bureau\projet domo\Form1.vb:line 651
   at System.Windows.Forms.Control.OnTextChanged(EventArgs e)
   at System.Windows.Forms.Control.set_Text(String value)
   at System.Windows.Forms.TextBoxBase.set_Text(String value)
   at System.Windows.Forms.TextBox.set_Text(String value)
   at WindowsApplication18.Form1.Timer1_Tick(Object sender, EventArgs e) in C:\Documents and Settings\sebastien\Bureau\projet domo\Form1.vb:line 628
   at System.Windows.Forms.Timer.OnTick(EventArgs e)
   at System.Windows.Forms.Timer.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr idEvent, IntPtr dwTime)


 






 


Seb
0
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 16:38
voila la transcription que j'ai faite mais il n'y a pas d'erreur:

Dim NbrLine
As
Integer

If ListView3.Items.Count = 0
Then

Exit
Sub

End
If

' On parcoure toute les lignes de 1 à la dernière

For NbrLine = 1
To ListView3.Items.Count

' On compare

If ListView3.Items(NbrLine).SubItems(1).Text = TextBox1.Text
Then

' Moi j'ai mit une message box, toi tu mets le changement de ton iconeMessageBox.Show("Coucou c'est la fin de votre connection à internet")

End
If 

Next NbrLine

Seb
0
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 16:40
dans mon textbox1.text j y est mis l'heure



TextBox1.Text = Now.ToShortTimeString








 


Seb
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 16:49
Faut regarder que dans ta listview  et textbox tu as bien le format heure suivant et de type String : hh:mm:ss

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
cs_Exploreur Messages postés 4821 Date d'inscription lundi 11 novembre 2002 Statut Membre Dernière intervention 15 novembre 2016 15
7 nov. 2007 à 16:51
Essaye cela si cela est comptatible avec .net (Format):

If Format(ListView3.Items(NbrLine).SubItems(1).Text,"hh.mm.ss") = Format(TextBox1.Text,"hh:mm:ss") Then

A+
Exploreur

 Linux a un noyau, Windows un pépin

 
0
berpontini Messages postés 8 Date d'inscription mercredi 22 août 2007 Statut Membre Dernière intervention 7 novembre 2007
7 nov. 2007 à 17:09
ton code n'a pas d'erreur mais j'ai la meme exception
je pense que le probleme viens de la

For NbrLine = 1
To ListView3.Items.Count
je ne suis pas sur que ce code fonctionne correctement puisqu il me met une exception du type display index
ca doit chatouiller la verite mais c'est pas encore ca
Seb
0
Rejoignez-nous