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 6 et antérieur Discussion :

Nettoyage d'une MSFlexGrid


Sujet :

VB 6 et antérieur

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Par défaut Nettoyage d'une MSFlexGrid
    Bonjour,mon environnement de développement est VB6 sous XP familial

    J'ai besoin de remplir et de nettoyer une MSFlexGrid plusieurs fois de suite en réinitialisant l'index des "row" à chaque remplissage.

    La méthode RemoveItem supprime les rangs. Mais leur index est conservé jusqu'au 9ème rang de façon cachée, de telle sorte que l'ajout de nouveaux rangs ne se fera qu'à partir du 10ème rang.

    Les méthodes Clear et ClearStructure ne changent rien au problème.

    Ci-dessous un bout de code pour tester ce phénomène que je ne comprends pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    ---------------------------
    Private Sub Form_Load()
    Dim r As Integer
    For r = 1 To 30
    MSHFlexGrid1.AddItem r
    Next
    MSHFlexGrid1.RemoveItem 1
    End Sub
     
    Private Sub Command1_Click()
    Dim r As Integer
    'MSHFlexGrid1.Clear
    'MSHFlexGrid1.ClearStructure
    For r = 30 To 2 Step -1
    MSHFlexGrid1.RemoveItem r
    Next
    End Sub
     
    Private Sub Command2_Click()
    Dim r As Integer
    For r = 2 To 30
    MSHFlexGrid1.AddItem r & " new"
    Next
    End Sub

  2. #2
    Membre Expert Avatar de OhMonBato
    Homme Profil pro
    Inscrit en
    Mars 2007
    Messages
    2 660
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2007
    Messages : 2 660
    Par défaut
    Bonjour,

    je ne comprends pas vraiment ton problème, avec le code que tu donnes tout se passe bien. Command1 efface toutes les lignes sauf la 1, puis Command2 m'ajoute bien des lignes de "2 new" à "30 new"

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Par défaut
    Citation Envoyé par OhMonBato Voir le message
    Bonjour,
    Command2 m'ajoute bien des lignes de "2 new" à "30 new"
    Merci d'avoir répondu, mais je suis de plus en plus perplexe :

    Avec ce code, Command2 m'ajoute des lignes de "10 new" à "30 new" !
    (Il s'agit d'un programme test et il n'y a rien d'autre que ce que j'ai posté...)

    Par ailleurs j'ai déjà pas mal programmé avec l'objet MSHFlexGrid1 et tout se passe normalement, sauf ce bug que je n'arrive pas à contourner.
    Je ne vois vraiment pas d'où peut venir la différence entre nos deux résultats !!!

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Par défaut
    Petite précision :

    Quand j'ajoute : "MsgBox MSHFlexGrid1.Rows" à la fin de "Command2_Click" j'obtiens "31".

    J'en déduis donc que tous les rangs ajoutés sont potentiellement présents, mais que les 9 premiers ne s'affichent pas.

    Je sais que ça peut paraitre invraisemblable, mais c'est que je constate à chaque fois (j'ai refais plusieurs fois la manip dans le vrai programme et dans ce bout d'essai)

  5. #5
    Expert confirmé
    Avatar de ProgElecT
    Homme Profil pro
    Retraité
    Inscrit en
    Décembre 2004
    Messages
    6 132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 69
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Retraité
    Secteur : Communication - Médias

    Informations forums :
    Inscription : Décembre 2004
    Messages : 6 132
    Par défaut
    Salut

    Pas de problème non plus chez moi, sous Windows 7 familiale.
    As tu chargé le ServicePack6 pour la mise à jour des composants?
    :whistle:pourquoi pas, pour remercier, un :plusser: pour celui/ceux qui vous ont dépannés.
    saut de ligne
    OOOOOOOOO👉 → → Ma page perso sur DVP ← ← 👈

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Mai 2010
    Messages
    40
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2010
    Messages : 40
    Par défaut
    Citation Envoyé par ProgElecT Voir le message
    As tu chargé le ServicePack6 pour la mise à jour des composants?
    Tu parles du màj de VB6 je suppose ? Je la faire car vous me confortez dans l'idée que c'est un bug du composant. Merci !

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

Discussions similaires

  1. [VB]Control sur une msflexgrid ?
    Par Shypster dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 14/01/2006, 14h29
  2. comment faire scroller une MSFlexGrid
    Par sergio_bzh dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 15/11/2005, 11h19
  3. nettoyage d'une base MySql en ASP
    Par gyouk dans le forum ASP
    Réponses: 6
    Dernier message: 04/11/2005, 15h46
  4. [VB6]PB d'importation d'un feuille Excel dans une MSFlexGrid
    Par mystere l dans le forum VB 6 et antérieur
    Réponses: 18
    Dernier message: 20/04/2004, 15h59
  5. [VB6] Multiselection avec CTRL dans une msflexgrid
    Par Troopers dans le forum VB 6 et antérieur
    Réponses: 6
    Dernier message: 17/04/2003, 10h57

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