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

Windows Forms Discussion :

Souci sur l'évènement SelectedIndexChanged d'un Listview


Sujet :

Windows Forms

  1. #1
    Invité
    Invité(e)
    Par défaut Souci sur l'évènement SelectedIndexChanged d'un Listview
    Bonjour à tous,

    Comme l'indique le titre, je dois utiliser une ListView affichant un ensemble de salle, avec leur numéro, leur type, et leur nombre de places. Et sur l'évènement SelectedIndexChanged, je voudrais mettre à jour un autre NumericUpDown. Sauf que ça marche pas...Étonnant non?

    Le problème semble venir du fait que, lors du changement de l'item sélectionné (je précise que ma ListView n'accepte pas la multisélection), le count des items sélecionnés passe d'abord à 0, puis repasse à 1. Sauf que le traitement démarre quand il est à 0, d'où la jolie exception.

    Ma question est la suivante : comment faire pour remédier à ça? J'ai bien imaginé un Try...Catch, mais je vois pas comment le tourner, si tant est qu'il règle le problème.

    Merci pour votre aide

  2. #2
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    16
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France, Marne (Champagne Ardenne)

    Informations forums :
    Inscription : Avril 2009
    Messages : 16
    Points : 19
    Points
    19
    Par défaut
    Bonjour,

    Pouvez vous poster votre code?
    Ça serait plus simple pour travailler dessus.

    Cordialement

  3. #3
    Invité
    Invité(e)
    Par défaut
    Bien sûr, mais je ne pense pas que ça va beaucoup vous aider...

    Code VB.net : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    Private Sub LV_salles_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles LV_salles.SelectedIndexChanged
       Try
          Dim noSalle As Integer = Me.LV_salles.SelectedItems.Item(0).Text
          MsgBox(noSalle)
       Catch ex As Exception
          MsgBox(ex.Message)
       End Try
    End Sub

  4. #4
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    Tu peux toujours tester avant que le SelectedItems.Count est > à 0. Si ça n'est pas le cas, tu sors de la sub.

    Ca évitera le plantage.

    Par contre, comme tu es sur un listview en "mono-sélection", peut-être faut-il mieux passer par l'event ItemSelectionChanged et tester le e.IsSelected pour dérouler le code.

    Cdt.
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

  5. #5
    Invité
    Invité(e)
    Par défaut
    Citation Envoyé par olsimare Voir le message
    Par contre, comme tu es sur un listview en "mono-sélection", peut-être faut-il mieux passer par l'event ItemSelectionChanged et tester le e.IsSelected pour dérouler le code.
    En effet, ça marche, merci beaucoup.

    NB : petite question technique. J'ai vu dans la déclaration de la procédure que e n'était pas un System.EventArgs classique. Comment se fait-il que cet évènement en particulier demande une autre classe d'évènement? (J'espère que le vocabulaire est bon...)

  6. #6
    Membre chevronné
    Avatar de olsimare
    Inscrit en
    Décembre 2006
    Messages
    1 179
    Détails du profil
    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 179
    Points : 1 776
    Points
    1 776
    Par défaut
    Bonjour.

    L'objectif de la levée d'un évènement (le raiseevent en vbnet) est d'informer les "abonnés" à cet évènement que celui-ci est survenu.

    Suivant l'évènement (et la bonne volonté de son concepteur), lors de sa levée, on peut fournir plus ou moins d'information que l'on juge utile au traitement de cet évènement.

    Typiquement, lors d'une évènement de changement de la valeur d'une propriété, on peut considérer que les abonnés seront intéressés par la valeur avant et la valeur aprés modification. Voire, qui l'a modifié, via quel objet, etc ...
    Tout cela pour définir le "contexte" dans lequel a été déclenché l'event.

    Le System.EventArgs est le type d'event "classique" des objets du framework lorsqu'il n'a pas été jugé nécessaire de passer plus d'info sur le contexte que celles qu'il fournit.

    Voilà, n'oublie pas le

    Cdt.



    consiste à informer qu'une action
    Bon à savoir : la touche F1 ne sert pas à commander des places pour le grand prix de Belgique.

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

Discussions similaires

  1. Évènement SelectedIndexChanged sur un ListView
    Par cobolfingaz dans le forum C#
    Réponses: 2
    Dernier message: 23/03/2007, 13h59
  2. Petit souci sur la libération d'une connexion tcp
    Par alexandre75 dans le forum Développement
    Réponses: 1
    Dernier message: 08/11/2005, 19h43
  3. [débutant] test sur un évènement
    Par heider dans le forum Langage
    Réponses: 4
    Dernier message: 07/10/2005, 00h44
  4. souci sur ajout de données de zone de liste
    Par Tierisa dans le forum IHM
    Réponses: 6
    Dernier message: 27/09/2005, 08h30
  5. Condition sur un événement
    Par kobe dans le forum Langage
    Réponses: 2
    Dernier message: 11/07/2005, 10h17

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