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 :

[VB.NET] Comment avoir un contrôle commun à plusieurs forms?


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 46
    Points
    46
    Par défaut [VB.NET] Comment avoir un contrôle commun à plusieurs forms?
    Bonjour,
    (désolé pour la ribambade de questions) mais je suis en train de mettre en place l'architecture de mon projet donc je préfère approfondir la chose de suite


    Contexte : Un projet, N formulaires, 1 liste commune a 60 % de ses formes.
    Imaginons un cas concret : 1 liste de clients filtrés par ceux du département avec plus de 1M€ de CA.

    Dans mon premier écran de saisie de jsaispasquoi j'ai ma liste trié ainsi, je passe à un deuxième écran (form) dans lequel je retrouve cette liste et je veux la retrouvée dans le même état (même données, même organisaiton des colonnes) que dans ma fonctionnalité précédente.

    Comment procéderiez vous ?

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    je me suis mal exprimé ou personne n'a de solutions ?

  3. #3
    Membre éprouvé
    Avatar de HULK
    Inscrit en
    Juillet 2003
    Messages
    1 276
    Détails du profil
    Informations personnelles :
    Âge : 44

    Informations forums :
    Inscription : Juillet 2003
    Messages : 1 276
    Points : 1 281
    Points
    1 281
    Par défaut
    moi ce que je ferais, je mettrai ta liste dans une variable collection déclarée en public, pour qu'elle soit accessible dans tout les formulaires de ton projet, à chaque load de tes forms tu charge une listbox avec ta variable par exemple.

  4. #4
    Membre expérimenté
    Avatar de freddyboy
    Homme Profil pro
    Architecte technique
    Inscrit en
    Novembre 2003
    Messages
    810
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Architecte technique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Novembre 2003
    Messages : 810
    Points : 1 696
    Points
    1 696
    Par défaut Re: [VB.NET] Comment avoir un contrôle commun à plusieurs fo
    Citation Envoyé par RiiiDD
    Bonjour,
    (désolé pour la ribambade de questions) mais je suis en train de mettre en place l'architecture de mon projet donc je préfère approfondir la chose de suite


    Contexte : Un projet, N formulaires, 1 liste commune a 60 % de ses formes.
    Imaginons un cas concret : 1 liste de clients filtrés par ceux du département avec plus de 1M€ de CA.

    Dans mon premier écran de saisie de jsaispasquoi j'ai ma liste trié ainsi, je passe à un deuxième écran (form) dans lequel je retrouve cette liste et je veux la retrouvée dans le même état (même données, même organisaiton des colonnes) que dans ma fonctionnalité précédente.

    Comment procéderiez vous ?
    moi je procede comme je l'ai expliqué sur mon blog ici : http://blog.developpez.com/index.php...&pb=1#more1188

    Dans ton cas c'est la partie 2

    @+

  5. #5
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 46
    Points
    46
    Par défaut merci
    Merci pour vos réponses, mais je vais essayer une autre méthode qui m'est venu à l'esprit :

    Formulaire principal = MDIparent
    le formulaire principal instancie ma liste qiu est en faite dans un usercontrol

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Public ObjListe_Ovin As UserCtrl_Liste_ovin
    dans le form_load de ma principale :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     ObjListe_Ovin = New UserCtrl_Liste_ovin
    bon jusque la pas de probs,
    click sur un menu => appel de form1 qui va contenir ma liste ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Public MyObjListEOvin As UserCtrl_Liste_ovin
    et ds son load ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     Me.Panel1.Controls.Add(MyObjListEOvin)
     
            MyObjListEOvin.Dock = System.Windows.Forms.DockStyle.Fill
            MyObjListEOvin.charge2_3trucs()
    bon la aussi pas de problemes ...

    Je click sur fermer de la form1, reviens sur la forme principale, click à nouveau sur le menu pour recharger ma form1, et la ... il ne veut pas me faire mon
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     Me.Panel1.Controls.Add(MyObjListEOvin)
    en me disant que :Impossible d'accéder à un objet supprimé.
    alors que dans la fenêtre d'execution je peux l'accèder sans problèmes ...

    Je ne comprends pas du tout

    Si qqun à une idée ...

  6. #6
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    bon ben j'ai trouvé, il faut que je remove mon control du panel avant le close de la form sinon il me le ferme à moitié

    Merci de vot aide

  7. #7
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    sur le close de ton form1 essaye d'ajouter :
    me.panel1.controls.remove(MyObjListEOvin)

    Mais cette solution me parrait très bancale.

    Te sers tu d'un datatset pour acceder a ta base de données ?
    Tu devrais.
    tu instancie ton dataset dans le mdi avec toutes tes données dedans.
    Dès que tu ouvre une form tu le passe en parametre.
    Lorsque tu veux cette fameuse liste tu instancie une dataview avec comme source la table de ta liste.
    tu met cbo.datasource = dataview
    et voilà

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Août 2005
    Messages
    58
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 58
    Points : 46
    Points
    46
    Par défaut
    oui mais toute la difficulté vient de faire passer les paramètrages de la liste = ordre des colonnes, tris effectués, de forms en forms ...

  9. #9
    Membre éprouvé
    Avatar de NiamorH
    Inscrit en
    Juin 2002
    Messages
    1 309
    Détails du profil
    Informations forums :
    Inscription : Juin 2002
    Messages : 1 309
    Points : 1 051
    Points
    1 051
    Par défaut
    Au contraire avec la solution du dataview :
    - tu peux faire des tris sur certains critères (RowFilter)
    - les données manipulées sont lues à partir du dataset unique pour toute l'appli donc tu fais un changement sur une form, le changement est mis à jour sur toutes les autres forms même ouvertes
    - tu peut utiliser un combo si tu n'a qu'un élément a afficher (liste) ou un datagrid dont tu peux personnaliser l'ordre des colonnes (tableaux)

    franchement c'est la solution..

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

Discussions similaires

  1. [XL-2003] Comment avoir un calendrier commun à plusieurs TextBox
    Par MichaSarah dans le forum Macros et VBA Excel
    Réponses: 5
    Dernier message: 14/11/2017, 14h10
  2. Comment avoir un DataTable commun à plusieurs Forms ?
    Par FANDOR dans le forum Windows Forms
    Réponses: 5
    Dernier message: 27/03/2008, 11h49
  3. Réponses: 2
    Dernier message: 05/05/2006, 16h44
  4. [ADO.NET]Comment réaliser une relation sur plusieurs champs?
    Par kleomas dans le forum Accès aux données
    Réponses: 3
    Dernier message: 13/03/2006, 12h40
  5. Réponses: 5
    Dernier message: 20/09/2005, 22h48

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