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 :

[Boucle] Ordre des Controls dans un ForEach


Sujet :

Windows Forms

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut [Boucle] Ordre des Controls dans un ForEach


    Je me trouve face a un problème qui est le suivant :

    Je boucle afin de recupérer la valeur .Text de plusieurs controls sur mon formulaire. Tous ce passe bien, le problème est que je souhaiterai recupérer ces valeurs dans un ordre bien précis car actuellement la recupération ce fait dans l'ordre alphabétique sur la propriété Name de mes controls. J'ai essayer avec la propriété TabIndex de mes controls mais cela ne fonctionne pas.
    Je vous mets mon code mais rien de plus classique :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
    if (ctrl.Name.StartsWith("txt_") || ctrl.Name.StartsWith("cmb_"))
                    {
                        Microsoft.Office.Interop.Word.Paragraph aPara;
                        aPara = nvDoc.Content.Paragraphs.Add(ref missing); 
                        aPara.Range.Text = ctrl.Text;
                        aPara.Range.Font.Bold = 1; 
                        aPara.Range.Font.Size =  12; 
                        aPara.Range.Font.NameAscii = "verdana" ; 
                        aPara.Range.InsertParagraphAfter();
                     }
    PS : Au passage je souhaite un ordre precis pour pouvoir mettre en forme correct un document word piloter par C#

    Merci

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    beh, si tu veux mettre dans un ordre particulier, je pense qu'il te faut une fonction de tri

    Donc, apres, par rapport à quelle information tu veux trier ? je l'ignore

    Une approche pourrait etre d'inclure cette information dans la propriété
    Tag de tes controles, ainsi, une fois les controles recuperérés, rien ne t'empeche de les mettres dans une liste et de trier suivant le critère adéquat

    The Monz, Toulouse

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2005
    Messages
    110
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2005
    Messages : 110
    Par défaut
    Ba c'est pas vraiment un critère particulier du controls, c'est arbitrairement je voudrais que CE control soit premier dans la boucle, puis celui-là, puis un autre ... etc

    Donc tu pense qu'un indice dans la propriété TAG pourrais etre une solution ?

  4. #4
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    salut

    oui, une indice dans le tag pourrait etre utile

    car vu que c'est toi qui va fixer sa valeur, tu ne seras pas dépendant de changement fait par l'OS ou le framework

    The Monz, Toulouse

  5. #5
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Les contrôles dans la collection sont dans l'ordre dans lequel ils y ont été ajoutés. Je te laisse tirer tes propres conclusions.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  6. #6
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    En gros il faudrait que tu modifies le code du designer mais il risque d'être écrasé a tout moment

  7. #7
    Membre émérite
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    547
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 547
    Par défaut
    Citation Envoyé par _skip Voir le message
    En gros il faudrait que tu modifies le code du designer mais il risque d'être écrasé a tout moment
    Salut,

    nop, pas besoin. Tu as un panel dans VS appelé Document Outline, dans ce dernier tu peux modifier l'ordre de l'ajout des controls dans la collection de le Form. Par defaut, la collection de la Form est trié par ordre d'ajout dans le designer du plus au moins recent.

  8. #8
    Membre éprouvé
    Avatar de _skip
    Homme Profil pro
    Développeur d'applications
    Inscrit en
    Novembre 2005
    Messages
    2 898
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur d'applications
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Novembre 2005
    Messages : 2 898
    Par défaut
    Ah? bien c'est utile j'avais jamais vu ça

  9. #9
    Membre Expert Avatar de Guulh
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    2 160
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Septembre 2007
    Messages : 2 160
    Par défaut
    Un détail en passant : il me paraît beaucoup plus fiable, pour savoir si un contrôle est un textbox, une combo ou autre, de vérifier le type de l'objet plutôt que faire des suppositions sur son nom.
    Donc remplacer
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ctrl.Name.StartsWith("txt_") || ctrl.Name.StartsWith("cmb_"))
    par
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (ctrl is TextBox || ctrl is ComboBox)
    Il ne me semble pas très pérenne de compter sur le fait que le designer de visual donne systématiquement à la propriété Name d'un contrôle le nom de la référence de ce contrôle. C'est pas de la réflexion mais presque, et faire du code qui ne résiste pas au simple changement du nom d'une variable est dangereux.

    Voilà voilà

Discussions similaires

  1. Boucle sur Control : Ordre des controls dans la Liste
    Par juanpa dans le forum Général VBA
    Réponses: 5
    Dernier message: 05/02/2015, 00h16
  2. Ordre des boucles et des éléments dans tXMLMAP
    Par tibalt76 dans le forum Développement de jobs
    Réponses: 4
    Dernier message: 09/11/2012, 17h06
  3. Ordre d'affichage des control dans une form
    Par bipcpp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 09/12/2009, 20h08
  4. Comment peut on integer des controles dans un prog opengl
    Par franck31400 dans le forum OpenGL
    Réponses: 2
    Dernier message: 28/04/2004, 09h06
  5. Ordre des champs dans une table
    Par patapetz dans le forum Outils
    Réponses: 5
    Dernier message: 30/07/2003, 06h53

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