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 :

Suppression de plusieurs contrôles


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Par défaut Suppression de plusieurs contrôles
    Bonjour!

    J'ai un problème. J'ai créé un formulaire qui permet j'ajouter, de supprimer et de couper/copier/coller des groupes de contrôles. Mon problème est que pour savoir quels contrôles supprimer, je vais chercher les valeurs du haut et du bas du groupe de contrôles sélectionné, ensuite je parcours la collection de contrôles du Panel et si le contrôle se trouve entre ces 2 positions, je le supprime.

    Tout va bien quand j'ai un ou 2 groupbox à supprimer, mais quand il y en a plus, on dirait que la fonction "saute" des contrôles et ne les supprime pas tous(vu que ça va trop vite ou je ne sais pas). J'ai essayé de mettre un timer pour lui laisser le temps, mais ça marche pas plus. J'utilise Remove.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    nomForm.SplitContainer1.Panel2.Controls.Remove(nomControl)
    Si quelqu'un a une idée ou un autre moyen de faire, dites-le moi svp!!!

    Merci!

  2. #2
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je comprends pas trop ton problème
    mais la plateforme .net ne laisse pas de place au hasard !!!
    mets nous un peu plus de code et/ou précise un peu ...
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Par défaut Voici le code
    Voici mon code pour un interval;
    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
    	'pour ne pas que la location des contrôles ne change quand j'en efface en dessous
    	nomForm.SplitContainer1.Panel2.AutoScroll = False
     
    	'parce que tous les contrôles ne s'effacent pas du 1er coup!!!
    	Do While trouve
                trouve = False
     
                For Each Control In nomForm.SplitContainer1.Panel2.Controls
    		'je teste si le contrôle se trouve dans l'espace dont je veux supprimer les contrôles
                    If Control.Location.y > yMin And Control.Location.y < yMax Then              
                        nomForm.SplitContainer1.Panel2.Controls.Remove(Control)
                        trouve = True
                    End If
     
                Next
          Loop
          frmCrea.SplitContainer1.Panel2.AutoScroll = True
    Je dois looper plusieurs fois pour effacer les contrôles se trouvant dans une certaine distance. Jusque là, ça va, mais si je veux faire plusieurs intervales distincts, exemple de location.Y<10 et location.Y>5, et un autre interval, soit location.y<20 et location.y>15, alors on dirais que ça va trop vite et que tous les contrôles du premier interval n'ont pas étés supprimés.

    J'essaie de mettre ça clair, la réponse est peut-être simple, mais je manque encore d'expérience.

    Merci de m'aider!

  4. #4
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    tu es sur framework 2 ou 3.5 ?

    le principe c'est que tu fais par exemple un rectangle de selection à l'écran et que tout ce qui est dedans est supprimé ?
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2008
    Messages : 115
    Par défaut
    Je suis sur le framework 3.5, et le principe est de sélectionner plusieurs groupes de contrôles qui peuvent ne pas se suivre(je les mets rouges pour les caractériser) et les contrôles qui leur sont associés, et pour les supprimer, je parcours la collection de contrôles et vérifie la propriété .location.y de chaque contrôle pour voir s'ils se trouvent dans la section délimitée par deux contrôles du même type.

    Exemple; tous les contrôles se situant entre 2 groupbox distincts.

    Quand je le fais pour cet interval, je dois looper parce qu'après un tour de la collection, il reste encore des contrôles. S'il y a trop de contrôles dans cette zone, il en reste après le 1er tour.

    Est-ce plus clair? Même moi je commence à ne plus me comprendre!!!

    Merci de votre patience!


  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Ton code pose problème puisque tu modifies la collection que tu parcours lors du For Each, ce qui fausse le reste du parcours.

    Dans le For Each ajoute chaque contrôle à supprimer dans une autre collection, et ensuite tu parcours cette dernière pour faire tes suppressions.

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

Discussions similaires

  1. Requête suppression de plusieurs lignes
    Par rane dans le forum Requêtes
    Réponses: 20
    Dernier message: 29/06/2006, 21h22
  2. [Hibernate2]suppression de plusieurs enreg de base de donnée
    Par michaelbob dans le forum Hibernate
    Réponses: 2
    Dernier message: 15/05/2006, 17h48
  3. Réponses: 1
    Dernier message: 22/12/2005, 18h33
  4. [VBA Excel] Créer plusieurs contrôles dynamiquement
    Par loacast dans le forum Macros et VBA Excel
    Réponses: 10
    Dernier message: 08/12/2005, 18h27
  5. suppression sur plusieurs tables
    Par Jean-Matt dans le forum Langage SQL
    Réponses: 2
    Dernier message: 16/06/2005, 12h46

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