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 :

bonne pratique dans la gestion des groupes de contrôles


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Points : 54
    Points
    54
    Par défaut bonne pratique dans la gestion des groupes de contrôles
    BOnjour,

    j'ai un form qui comporte plusieurs onglets.
    Dans l'un d'eux j'ai plusieurs boutons qui doivent faire apparaître dans ce même onglet, un certains nombre de groupes de contrôles (groupe assez simple: quelques boites texte + boutons de validation ou reset).

    Ma question est la suivante:

    y a-t-il possibilité de créer ses groupes de contrôles dans un form (invisible pour l'utilisateur et qui servirait de stockage) et d'appeler tel ou tel groupe de contrôles de cette form et de les faire apparaître dans mon onglet à l’emplacement voulu (j'aurai déterminé un contenant auparavant ?

    mon avantage serait de pouvoir agencer mes contrôles comme je l'entend dans la form de "stockage" et d'appeler ce groupe comme j'appellerai une variable.

    j'espère être clair. Je ne sais pas si c'est la bonne pratique mais je ne veux pas faire des séries de "moncontrol.visible=false ou true)


    Merci par avance,

    Kirk

  2. #2
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    bonsoir,
    tu peux faire des contrôles utilisateur (UserControl) contenant les contrôles que tu veux...
    De cette manière tu pourras créer celui que tu veux et t'en servir dans une variable...

  3. #3
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Un groupbox ne ferait pas l'affaire ?

  4. #4
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Citation Envoyé par calagan99 Voir le message
    Un groupbox ne ferait pas l'affaire ?
    +1, mais alors il devra d'office faire de .visible = false sur les différents groupBox, ce qu'il avait l'aire de ne pas vouloir faire, d'où ma proposition du contrôle utilisateur...

  5. #5
    Modérateur

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Avril 2007
    Messages
    1 996
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2007
    Messages : 1 996
    Points : 3 102
    Points
    3 102
    Par défaut
    Effectivement.
    Tout dépend du nombre de groupe qu'il devra gérer.
    S'il n'a que deux ou trois groupbox, ça reste correct.
    Par contre, tu as raison, s'il a beaucoup plus de groupe de contrôle, un userControl est tout indiqué.

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Bonjour,

    merci pour l'info, je n'avais jamais utilisé cette possibilité.

    je regarde cela de suite.
    c'est tout à fait indiqué car j'aurai beaucoup de groupes de contrôles.

    le tout maintenant est de savoir comment s'en servir.
    Je vous tiens au courant.

    Merci encore

    K

  7. #7
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    y a-t-il possibilité de créer ses groupes de contrôles dans un form (invisible pour l'utilisateur et qui servirait de stockage) et d'appeler tel ou tel groupe de contrôles de cette form et de les faire apparaître dans mon onglet à l’emplacement voulu (j'aurai déterminé un contenant auparavant ?
    Oui, tu peux créer une forme "Form1" comportant un Panel "Panel1" (avec propriétés Dock=Fill et Modifiers=internal) qui contiendra tous les controls et à l'exécution (code en C#) dans la forme contenant le TabControl:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Form1 MyForm1 = new Form1() ;
    MyForm1.Panel1.Parent=MyTabPageX
    MyForm1.Dispose() ;
    Remarque : On gèrera dans Form1 tous les events concernant les controls contenus dans Panel1, comme si ils étaient dans Form1 (indépendamment de la forme contenant le TabControl).
    " Le croquemitaine ! Aaaaaah ! Où ça ? " ©Homer Simpson

  8. #8
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    C'est bien trouvé (mais c'est à peu de chose pret la même chose qu'un userControl ),
    en gros c'est comme la solution des groupBox que proposait calagan99 sauf que tu déportes le container, ici le panel, dans une autre forme, et à l'exécution, tu changes le parent du container.
    Ce qui évite d'avoir à jouer avec des visibles.
    Autre avantage, tu as une visibilité parfaite des composants contenu, ce qui n'est pas le cas quand on met tout sur la même form et que l'on joue avec la propriété .visible

    P.S. : Modifiers=internal n'existe pas en vb.net, je l'ai mi en Modifiers=Public

  9. #9
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Oui je trouve cela beaucoup mieux que de jouer avec les visible.
    j'ai doc testé avec les compléments de graffito et ça à l'air de fonctionner génial.

    voici mon bout de code:

    1ère partie rajoutée dans la partie déclaration des variables
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Private Property UsrContrl As UsrContrl
    puis sur mon bouton click:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    UsrContrlr = New UsrContrl()
    UsrContrl.moncontainer.Parent = grb
    UsrContrl.Dispose()
    est-ce que la bonne pratique selon vous ?

    autre chose: je désire que sur ce même bouton, au 2nd click, le contenu disparaisse.

    quelle propriété dois-je utiliser ?

    merci encore pour votre aide

    K

  10. #10
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    grb.dispose

  11. #11
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Oui effectivement c'est tout bête.

    alors, juste une précision.
    je mets tout cela dans un "if"

    si j'appuie une fois, je montre ce groupe de contrôle, si j'appuie une 2nde fois je le cache.

    j'ai tenté un:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    UsrContrlr = New UsrContrl()
    if UsrContrl.moncontainer.Parent = grb then
    UsrContrl.Dispose()
    else grb.dispose()
    mais apparemment on ne fait pas comme cela ?

  12. #12
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Points : 4 232
    Points
    4 232
    Par défaut
    Voilà la solution à adapter :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
            If TabPage2.Controls.Count = 0 Then
                Dim frm2 As New Form2
                TabPage2.Controls.Add(frm2.Panel1)
                ' qui est pareil à :
                ' frm2.Panel1.Parent = TabPage2
                frm2.Dispose()
            Else
                TabPage2.Controls.RemoveAt(0)
            End If

  13. #13
    Membre du Club
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    148
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 148
    Points : 54
    Points
    54
    Par défaut
    Merci Sankasssss,

    ça marche impec.

    K

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 15/08/2014, 12h24
  2. Gestion des groupes dans un panel d'administration
    Par Nowwis dans le forum Langage
    Réponses: 5
    Dernier message: 17/01/2011, 18h39
  3. [TP]Problème dans la gestion des touches d'un tetris
    Par Guile0 dans le forum Turbo Pascal
    Réponses: 18
    Dernier message: 31/01/2005, 22h40
  4. gestion des groupes
    Par muaddib dans le forum QuickReport
    Réponses: 3
    Dernier message: 31/12/2002, 11h01

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