IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Compter item colorés d'une listeview [Débutant]


Sujet :

VB.NET

  1. #1
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut Compter item colorés d'une listeview
    Bonjour,

    je souhaiterai savoir s'il était possible de compter des items d'une listview ayant un backcolor rouge?

    j'arrive à compter les items présents mais pas ceux ayant un backcolor rouge (ils passent au rouge quand la date et l'heure sont dépassés.)

    Je vous remercie!

  2. #2
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Tu souhaites compter les items rouges, ou ceux dont la date est dépassée? Je suppose que la deuxième proposition est la bonne.

    Quels types d'objets sont contenus dans ta listView?

  3. #3
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    D'ailleurs montre nous comment tu colories les dates dépassées. Tu dois pouvoir facilement les compter au passage.

  4. #4
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut
    Bonjour et merci de vos réponses.

    Je lis un fichier csv. Chaque case lue est mise dans une liste.
    Les cases dates et heures sont mises en variables.
    les items de ma listview sont donc les éléments de ma liste.

    en gros j’exécute une action en comparant la date et l'heure du PC.

    je charge ma listeview lorsque la valeur d'une listbox change. Au chargement de la listview:

    Si c'est supérieur, le fond de l'item est jaune.
    Si l'action est en cours, c'est vert.
    Si c'est dépassé, c'est rouge.

    Je voudrais compter le nombre d'item rouge afin de voir s'ils le sont tous de manière à arrêter mon timer puisque plus aucune action ne pourra se faire.


    Je vous remercie, j'espère que j'ai été clair....

    Bien cordialement!

    Innuendo67

  5. #5
    Membre chevronné Avatar de r.morel
    Homme Profil pro
    Dessinateur CAO
    Inscrit en
    Août 2014
    Messages
    339
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Dessinateur CAO
    Secteur : Agroalimentaire - Agriculture

    Informations forums :
    Inscription : Août 2014
    Messages : 339
    Par défaut
    Alors tu créés une variable et lorsque tu colorie ton item en rouge tu fais +1.

  6. #6
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut
    Bonjour,

    clairement je n'y avais pas pensé...en plus je le fais pour autre chose...honte à moi..

    J'essaie ça!

    Merci!

    innuendo67

  7. #7
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut
    Bonjour,

    encore des soucis de compteur... En fait je crois que j'avais déjà essayé ça mais vu que cela fait plusieurs semaines que je suis sur le projet, je ne sais plus ce que j'ai fait...

    Voilà comment je colorie les items de ma listview:

    Dans le Tick de mon Timer:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    Select Case True
     
    Case DateTime.Compare((celluledate + " " + Dateadd(dateinterval.second, dureeenseconde, Cdate(celluleheure))), Format(Now, "dd/MM/yyyy HH:mm:ss")) < 0 
     
    Listview1.items.item(i).backcolor = color.red
     
    'où i est un entier
     
    End select
    J'ai essayé de mettre un compteur juste en dessous de la ligne qui colorie mes items

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    compteuritem = compteuritem + 1
    'ou
     
    compteuritem =+ 1
    mais bien sûr ça m'incrémente mon compteur toutes les secondes (durée du tick)...

    Voilà où j'en suis...

    Merci pour votre aide

    Cordialement,

    innuendo67

  8. #8
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Octobre 2013
    Messages
    1 563
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2013
    Messages : 1 563
    Par défaut
    Il nous manque des informations pour pouvoir t'aider...

    Pour commencer, quand tu dis :
    Citation Envoyé par innuendo67 Voir le message
    j'arrive à compter les items présents mais pas ceux ayant un backcolor rouge (ils passent au rouge quand la date et l'heure sont dépassés.)
    Comment fais-tu pour parcourir les items et leur affecter la couleur?

    En toute logique tu devrais avoir la trame suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
     'Pour chaque item dans une liste définie
     '   Si la date de mon item est dépassée alors je le colorie en rouge
     'Fin pour
    Ainsi, c'est au moment où tu affectes la couleur que tu incrémentes ton compteur. Et ton compteur doit être initialisé à 0 juste avant de parcourir tous tes items.

  9. #9
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut
    Bonjour,

    merci pour cette réponse mais je ne peux pas dire plus car quand tu dis:

    Comment fais-tu pour parcourir les items et leur affecter la couleur?
    la réponse est dans mon poste précédent.

    Dans une boucle for je fais un Select CASE true.

    Merci.

    Cordialement,

    Innuendo67

  10. #10
    Membre chevronné
    Avatar de nouanda
    Homme Profil pro
    Hobbyist
    Inscrit en
    Mai 2002
    Messages
    246
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Activité : Hobbyist

    Informations forums :
    Inscription : Mai 2002
    Messages : 246
    Par défaut
    Pourquoi s’embêter a compter les lignes rouges, alors que tu peux compter directement dans la liste remplie depuis ton fichier CSV? Par exemple:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    If _listfromcsv.Count(item => item.Date > DateTime.now) = _listfromcsv.Count
    etc etc...
    Il ne fait jamais faire confiance a la couche visuelle pour traiter des données! tu n'es pas a l'abri d'un bug d'affichage, d'un délai dans le traitement des messages Windows, ou de n'importe quoi.

    Tu as une liste sous-jacente, utilise la!

  11. #11
    Membre averti
    Homme Profil pro
    autre
    Inscrit en
    Septembre 2015
    Messages
    35
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : autre
    Secteur : Service public

    Informations forums :
    Inscription : Septembre 2015
    Messages : 35
    Par défaut
    Bonjour et merci pour ces réponses.

    Je vais réexpliquer mon problème et surtout les procédures que je fais car je n'ai pas dû être clair.

    Je lis un fichier csv où il a une colonne date une colonne heure une colonne avec le nom d'une chanson et une colonne avec sa durée.
    Chaque cellule de ce fichier est listée.

    Ensuite le sélectionne ce fichier via une listbox.
    Dans l'événement listbox selected value changed je compte mes items dates + heures + durée chanson qui sont dépassés par rapport à l'heure de mon pc ( ça aucun souci).
    Tous ces items sont ensuite visibles dans une listview et si c'est dépassé c'est en rouge.

    Ensuite, je clique sur play ce qui lance mon timer.
    Dans le tick, je compare les items de ma liste a l'heure du pc. Si date+heure à venir alors c'est bleu sur le listview. Si date + heure + durée est supérieur à l'heure du pc alors je colorie en rouge.

    Le nombre d'items rouges de ma listview change donc.
    Je ne peux pas mettre de compteur puisque la procédure à lieu dans le ticket est donc répétée chaque secondes.

    Je débute et je pense que pour comparer des heures à celle du pc je n'ai pas trop le choix que de faire ca dans un timer.

    J'espère avoir été plus clair et vous remercie de vos réponses.

    Cordialement

    Innuendo67

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Créer une listeview avec le nombre d'items variable
    Par der43e dans le forum Android
    Réponses: 3
    Dernier message: 13/09/2016, 11h11
  2. Choisir un item d'une listeview
    Par J.B.P dans le forum Android
    Réponses: 3
    Dernier message: 11/07/2014, 15h26
  3. [Débutant] Rechercher les items dans une listeview
    Par Martipit dans le forum VB.NET
    Réponses: 14
    Dernier message: 01/10/2012, 22h26
  4. [langage] compter des caracteres dans une chaine
    Par louisis dans le forum Langage
    Réponses: 3
    Dernier message: 18/05/2004, 22h39
  5. coloration dans une RichEditbox
    Par BillBarouf dans le forum C++Builder
    Réponses: 3
    Dernier message: 01/03/2004, 19h59

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo